• 嵌入式Linux驱动模板精讲与项目实践(txt+pdf+epub+mobi电子书下载)|百度网盘下载

  • 马哥Linux高端运维云计算就业班(马哥教育),百度网盘下载

    马哥Linux高端运维云计算就业班(马哥教育),百度网盘下载

    本课程由马哥教育出品的liux从基础上看,高端运维云计算课程分为33章liux云计算课程课程的基本操作,到liux系统功能作用讲解和获取命令、再到liux常用的实战命令和liux的raid和lvm应用、liux一套完整的教程,如网络核心集群负载平衡方案。适用人群:系统运维架构师、运维开发工程师、云计算运维工程师、应用运维工程师、大数据运维工程师、软件运维工程师、游戏运维工程师liux系统运维工程师、数据库运维工程师、网络运维工程师、安全运维工程师课程目录:ma哥Liux高端运维云计算就业班目录│(大小29.37g)├01Liux云计算入门大纲:Liux运维云计算及未来的发展│└1.马哥亲自讲Liux运维发展与学习路线图.m4├02课前环境准备Liux基础入门介绍││2、Liux云计算学习环境介绍.m4││3、Liux全面介绍云计算系列课程体系.m4││4、Liux开发和演变操作系统.m4│└5、Liux使用开始入门和基本操作.m4├03Liux帮助系统组成和获得命令││6、运维基本功-Liux系统组成及初识.m4││7、运维基本功-Liux解释文件系统的功能和功能.m4││8、运维基本功-Liux获得命令使用帮助的详细解释.m4│└9、运维基本功-Liux实战应用常用基本命令.m4├04Liux根文件系统和目录结构ah特性││10、Liux全面解释目录结构和根文件系统.m4││11、Liux历史的基本命令和命令.m4││12、ah文本查看命令的常见特征和实战.m4│└13、Liux常用的文件管理命令和系统变量基础.m4├05运维必备知识-Liux用户组管理和用户权限││14、Liux高级系统运维应用-glo通配及IO重定向.m4││15、Liux系统用户和组全面解释.m4││16、Liux用户和团队管理命令演练和实际应用.m4│└17运维核心技能-Liux用户权限管理用户权限.m4├06hell脚本基础和gre企业应用文本处理工具││18、hell脚本基础-ah变量和逻辑操作.m4││19、hell脚本基础-ah脚本编程基础及配置文件.m4││20运维核心技能-gre命令和基本正则表达式.m4│└21、运维核心节能-egre应用高级文本处理工具.m4├07运维核心技术-vim文本编辑和文件搜索应用程序││22、Liux必要的操作和维护技能-vim深入解释编辑器.m4││23、Liux必要的操作和维护技能-vim高效使用编辑器.m4││24、Liux必要的操作和维护技能-查找命令企业级应用文件.m4│└25运维加薪技能-Liux特殊权限及facl扩展.m4├08面试加分技能-Liux磁盘和文件系统管理││26、Liux磁盘使用及文件系统管理介绍.m4││27、Liux解释磁盘使用和文件系统管理的先进概念.m4││28、Liux磁盘使用和文件系统管理.m4│└29、Liux磁盘使用和文件系统管理企业级实战.m4├09hell高级及脚本编程RAID和LVM应用││30运维核心技能-hell脚本编程思想和条件测试.m4││31运维核心技能-hell脚本逻辑判断和参数传输.m4││32面试必备技能-Liux平台RAID全面讲解技术.m4││33运维高级技能-在Liux实现LVM逻辑卷和快照.m4│└34运维加薪技能-trf管理和应用文件系统.m4├10Liux高级管理应用-压缩工具、计划任务、软件包管理实战││35、Liux压缩工具及hell实战应用脚本编程.m4││36、Liux任务计划crota企业实战应用.m4││37、Liux程序包管理介绍及应用.m4│└38、Liux软件包管理-rm命令介绍及实战应用.m4├11运维必备技能-Liux平台软件包管理yum与高级进阶││39运维必备技能-Liux软件包管理yum工具介绍.m4相关下载...

    2024-05-06 运行软件包脚本 编写脚本软件

  • 《探绿——居住区植物配置宝典(南方植物卷)》(pdf电子书下载)|百度网盘下载

    作者:大连万达商业地产股份有限公司,秦娜出版社:清华大学出版社格式:AZW3,DOCX,EPUB,MOBI,PDF,TXT探绿——居住区植物配置宝典(南方植物卷)试读:专家荐语董丽北京林业大学园林学院/教授植物景观是居住区环境中最为鲜活的景观要素。不仅因其美观而愉悦身心,满足居民的使用功能,发挥生态效益,同时也是文化表达的载体。本书以植物造景为主题,对居住区园林植物造景配置和植物图库进行总结,具有很好的实践意义。崔洪霞中国科学院植物研究所/副研究员直观的画面,简洁的文字,充分表达植物景观与居住环境的匹配规则;多样的植物造景风格,适配的植物选择,指导性地贯穿于各景观节点;多维度的景观植物造景信息,为景观从业人员提供很好的帮助。李迪华北京大学建筑与景观设计学院/副教授景观设计学研究院/副院长本书记录并呈现中国房地产业在快速发展过程中,以万达集团为代表的企业在居住区环境营造中追求植物造景极致的成就。出版“宝典”的目的是希望它被更多从业者掌握,进而呼唤下一个植物造景时代,更好实现近自然、低维护、多功能、社区参与及共享、追求安全和教育价值、体现对人与自然心灵联系和关怀的新景观。王绍增《中国园林》杂志社/主编华南农业大学林学与风景园林学院/教授园林绿化必须因地制宜。而模式化,自古是进入艺术领域的阶梯。本书紧紧抓住“因地制宜”和“模式化”这两条纲,既可保障产品质量,也便于普遍推广。强健中国风景园林学会/副理事长良好的生态景观环境是高品质居住区不可替代的组成部分,只有把握科学和艺术规律,才能使居住区锦上添花。本书在这方面做了可贵的探索,形成了与地产相协调、相映生辉的设计范例。本书内容清晰明了,便于把握,值得从业人员认真一读。张佐双北京市植物园/前园长中国植物学会植物园分会/理事长城市园林植物的选择及应用基本要求是适地适树,并尽量做到乡土树种与外来树种的结合。本书根据地域不同,提供植物选择的方向,并对植物景观造景设计提出配置意向,很有借鉴意义。序Preface中国植物资源丰富,园林植物品种繁多。随着城市建设,特别是房地产业的高速发展,园林植物在居住区的应用非常广泛,也为改善城市环境起到很好的提升效果。园林植物是园林景观构成的重要元素,也是具有生命的重要元素。用植物单体或组团来创造各种景观,是园林美化、人居环境改善的重要内容。随着我国园林事业的快速发展,植物造景的技术和艺术得到了很大的进步。学者、园林景观设计师、园林景观工程人员等对植物造景设计及景观效果也非常重视。本书从园林植物设计与实践出发,通过总结居住区景观设计与实践,提炼出居住区植物造景的配置模式及常用园林植物资源选择。本书从项目实践出发,内容结构合理、图文并茂,是园林景观从业人员很好的工具书。苏雪痕2016年10月11日上篇植物配置模式第一章居住区概述1.1居住区建筑特点风格定位:ArtDeco、欧式、现代、地中海、加州;建筑特点:线条感强、高层、色彩沉稳、形式简洁。1.2居住区景观空间布局分析布局特点:底商围合;居住区建筑行列式布局为主;高层建筑为主;景观节点:植物配置模式以景观区域划分为依据,分为以下八个节点。高档居住区平面图中高档居住区平面图第二章植物配置思路2.1植物配置基本原则强调空间关系:植物结合地形塑造空间,形成开合有致、主次分明、步移景异的空间关系;强调层次关系:注重植物群落的天际线及林缘线的节奏变化;强调季相变化:注重植物的四季变化,突出四季不同的观赏特点;强调对比关系:注重植物的高低对比、形态对比、质感对比、色彩对比和季相对比等。2.2植物配置特点2.2.1总体特点空间组织:收放得当,疏密有致,开合自然,关系明确;搭配手法:根据植物形态、色彩、质感及空间需要形成多重景观;品种选择:多采用当地即时效果好、易养护的品种,少采用时令花卉。2.2.2高档居住区植物配置特点乔灌木比例大,乔木规格较高;有适当的林荫空间;多重绿化配置模式为主,层次丰富。2.2.3中高档居住区植物配置特点植物空间疏朗明快,重点组团突出,有较大面积的草坪。2.3植物配置模式分类节点一:大门入口植物配置模式节点二:核心景观植物配置模式节点三:单元入口植物配置模式节点四:人行道路植物配置模式节点五:宅间活动广场植物配置模式节点六:宅间集中绿地植物配置模式节点七:消防道路植物配置模式节点八:外部围合植物配置模式第三章植物配置通用图解说明3.1植物株形说明3.2植物株形图示3.2.1乔木常绿乔木—针叶常绿乔木—阔叶常绿乔木—棕榈落叶乔木3.2.2灌木、地被、花卉自然状灌木整型灌木特型类地被花卉3.2.3藤本植物、竹类、水生植物、草坪藤本植物竹类水生植物草坪备注:施工号苗的规格要求:1.所有号苗的苗木规格(胸/地径、高度、冠幅及分枝数)不得低于设计规格;2.乔木高度与冠幅不得超出设计规格0.5m。3.3植物搭配常用形式3.3.1单一品种搭配孤植:丛生形大乔(CQ8)列植:圆冠形大乔(CQ5)丛植:棕榈类(CQ10)3.3.2低层次搭配低层次搭配:圆冠形小乔木+自然状灌木+整形灌木+地被花卉(LQ2+G3+G4+G5+D1+H2)低层次搭配:特殊形灌木+卵圆形灌木+整形灌木+地被花卉(G9+G2+G5+G4+D2+D1)低层次搭配:高冠形小乔木+团冠形小乔+自然状灌木+整形灌木+地被(CQ4+LQ5+G5+G4+D2+D1)3.3.3疏朗形搭配疏朗形搭配:高冠形乔木+圆冠形小乔+自然状灌木+地被花卉(CQ4+CQ5+G3+H1)疏朗形搭配:丛生形乔木+自然状灌木+整形灌木+地被(CQ8+G3+G4+D2+D1)疏朗形搭配:高冠形乔木+圆冠形小乔+团冠形乔木+自然状灌木+整形灌木+地被花卉(CQ4+CQ5+LQ5+G3+G5+G4+D1+H1)3.3.4多层次植物搭配多层次植物搭配:丛生形大乔+高冠形大乔+圆冠形中乔+自然状灌木+整形灌木+地被花卉(LQ4+LQ1+CQ4+CQ5+G3+G4+G6+D1+D2)多层次植物搭配:圆冠形乔木+塔状圆锥形小乔+自然状灌木+整形灌木+特殊形灌木+地被(CQ5+CQ6+G3+G6+G4+G6+G9+D1+D2)3.3.5与园林小品搭配与景墙搭配:丛生形乔木+圆冠形小乔+团冠形小乔+自然状灌木+整形灌木+地被花卉(LQ4+CQ4+CQ5+LQ5+G3+G4+G5+G6+D1+D2+H1)水景搭配:丛生形大乔+其他形中乔+团冠形小乔+自然状灌木+整形灌木+特殊形灌木+水试读结束[说明:试读内容隐藏了图片]点击下载...

    2022-04-05 常绿地被花卉 南方常用地被花卉

  • web安全微专业(kali正式篇)渗透/黑客/linux/网络安全/攻防/漏洞第4期(视频+课件),百度网盘,阿里云盘下载

    这套课程来自控制安全学院we安全微专业(kali正式篇)渗透/黑客//liux/网络安全/攻防/漏洞第四期官网售价4298元。从漏洞中学习代码,在代码中找到漏洞。通过对各类漏洞的深入分析,了解常见漏洞的属性,掌握漏洞挖掘的实际应用,如何利用漏洞控制目标进步。课程内容包括Kali为主的各种渗透工具,带同学从熟练掌握kali,入门安全,玩各种渗透工具,KaliLiux许多渗透测试软件都是预装的,包括,JohtheRier、d劫持etterca、hahcat密码破解、ma、Wirehark,以及Aircrack-g.用户可以通过硬盘,liveCD或liveUSB运行KaliLiux。KaliLiux镜像有32位和64位。x86指令集。同时也是基于。ARM树莓派和三星的结构镜像ARMChromeook。网站上还有2020We安全微专业-正式渗透/黑客/liux/网络安全/攻防/漏洞/kali(4、5、8期)课程一共26G文章底部的课程表和下载地址适用人群:1网工运维转岗2大学生就业3编程从业者4在职提升5黑客爱好者6寻求新方向we安全微专业(kali正式篇)渗透/黑客//liux/网络安全/攻防/漏洞视频截图课程目录:we安全微专业(kali正式篇)渗透黑客liux网络安全攻防第四期[26.1G]┣━━第四期正式课-t[7.8G]┃┣━━第10节:uruite检测插件[21.7M]┃┃┣━━文件包[18.1M]┃┃┃┣━━hatomj-2.1.1-widow.zi[17.4M]┃┃┃┣━━qlma.jar[595.4K]┃┃┃┗━━xValidator-mater.zi[138.2K]┃┃┣━━Buruite-用于检测插件.tx[3.6M]┃┃┗━━uruite-插件使用检测本课程的错误答案分析.docx[20.4K]┃┣━━第11节:x初步学习[4.5M]┃┃┣━━插件[202.7K]┃┃┃┗━━XSier_v1.1.37.crx[202.7K]┃┃┣━━跨站脚本攻击(XSS).g[814.9K]┃┃┣━━x初步学习漏洞.tx[3.4M]┃┃┗━━x漏洞初步学习易错解析回答.docx[16.8K]┃┣━━第12节:eef-x[3.6M]┃┃┣━━Beef-XSS.tx[3.5M]┃┃┣━━eef-x易错分析答案.docx[18.4K]┃┃┗━━XSS利用架构图.jg[99.8K]┃┣━━第13节:qlma原理利用[3.2M]┃┃┣━━aa.txt[3.3K]┃┃┣━━qlma.txt[598B]┃┃┣━━qlma之ql注入原理利用.tx[3.2M]┃┃┗━━qlma之ql注入原理利用易错回答分析.docx[15.8K]┃┣━━第14节:qlma之SQL注入一[13.4M]┃┃┣━━qli-li-mater.zi[3.3M]┃┃┣━━SQLma脑图.jg[4M]┃┃┣━━qlma过滤的tamer脚本分类总结.xlx[16.7K]┃┃┣━━SqlMa入门指南.g[2.6M]┃┃┣━━qlma之ql注入一.tx[3.5M]┃┃┗━━qlma之ql注入易错答案分析.docx[16.8K]┃┣━━第15节:qlma之SQL注入二[6M]┃┃┣━━SqlMa入门指南.g[2.6M]┃┃┣━━qlma之ql注入二.tx[3.4M]┃┃┗━━qlma之ql注入两门课容易错回答分析.docx[16.3K]┃┣━━第16节:wehell管理工具[124.9M]┃┃┣━━冰蝎[22.9M]┃┃┃┗━━Behider_v2.0.1.zi[22.9M]┃┃┣━━widow菜刀[685.2K]┃┃┃┗━━菜刀.zi[685.2K]┃┃┣━━widow蚁剑[98.1M]┃┃┃┣━━AtSword-Loader-v4.0.3-wi32-x64.zi[57.8M]┃┃┃┗━━AtSword.zi[40.3M]┃┃┣━━dama.h[85.6K]┃┃┗━━wehell管理工具.tx[3.1M]┃┣━━第17节:liuxhell管理工具[6.7M]┃┃┣━━dama.h[85.6K]┃┃┣━━liuxhell本课易错回答解析.docx[14.9K]┃┃┣━━Liuxhellweevely.tx[3.4M]┃┃┗━━liuxhell.g[3.1M]┃┣━━第18节:Metaloit框架介绍和基本命令[5.1M]┃┃┣━━Metaloit框架介绍和基本命令.tx[3.7M]┃┃┣━━Metaloit框架介绍和基本命令本课程的错误答案分析.docx[15K]┃┃┗━━MSF-mfcoole.g[1.4M]┃┣━━第19节:mf扫描模块[2.6M]┃┃┣━━MSF-扫描模块.tx[2.5M]┃┃┗━━mf扫描模块本课容易出错回答分析.docx[14.6K]┃┣━━第1节:kali的安装配置[2.7G]┃┃┣━━kali-liux-2019.3-vmware-amd64.7z[2.1G]┃┃┣━━kali快速安装-本课容易错分析回答.docx[22.7K]┃┃┣━━kali快速安装和构建虚拟机的环境.tx[2.1M]┃┃┗━━VMware-worktatio-full-15.5.0-14665864.exe[541.1M]┃┣━━第20节:mf密码爆破模块[2.8M]┃┃┣━━mf-爆破模块-本课容易回答错误分析.docx[15.3K]┃┃┗━━MSF-密码爆破.tx[2.8M]┃┣━━第21节:MSF漏洞利用一[88.5M]┃┃┣━━MSF-meterreter.g[1.4M]┃┃┣━━MSF-模块用于漏洞.tx[2.7M]┃┃┣━━mf-漏洞利用模块回答和分析课程的错误.docx[13.7K]┃┃┣━━hmyadmi.zi[10M]┃┃┗━━htudy配置.zi[74.5M]┃┣━━第22节:mf二用于漏洞[173.1M]┃┃┣━━获取管理员工具的插件mimikatz_truk.zi[899.9K]┃┃┣━━提权补丁集合widow-kerel-exloit-mater.zi[146.7M]┃┃┣━━Behider_v2.0.1.zi[22.9M]┃┃┣━━ex提权补丁.zi[250.8K]┃┃┣━━MSF-模块二用于漏洞.tx[2.3M]┃┃┗━━mf漏洞利用二-这门课容易出错,会回答分析.docx[16K]┃┣━━第23节:mf后门生成[33.1M]┃┃┣━━MSF-后门生成模块.tx[2.8M]┃┃┣━━mf后门生成模块-本课容易回答分析错点.docx[19.5K]┃┃┗━━vc6_c_full.exe[30.3M]┃┣━━第24节:hahcat密码破解[101.6M]┃┃┣━━工具[99M]┃┃┃┣━━提取各种文件加密的哈希值johtherier.7z[22.3M]┃┃┃┣━━flag.zi[245B]┃┃┃┣━━hahcat-5.1.0.7z[2.7M]┃┃┃┣━━ItelDriveradSuortAitatItaller.exe[13.6M]┃┃┃┗━━oecl_rutime_18.1_x64_etu.mi[60.5M]┃┃┣━━本课程容易出错.docx[19.7K]┃┃┗━━密码破解-hahcat.tx[2.6M]┃┣━━第25节:d劫持etterca[2.6M]┃┃┣━━d劫持-etterca.tx[2.6M]┃┃┣━━d劫持-本课容易回答分析错点.docx[61K]┃┃┣━━etterca常用指令.docx[17.4K]┃┃┣━━head.filter[343B]┃┃┗━━idex.html[4.5K]┃┣━━第二节:渗透测试流程及信息收集大纲[5.9M]┃┃┣━━编制信息收集文档.g[1.2M]┃┃┣━━常见的端口服务.g[420.3K]┃┃┣━━第二节:渗透试验流程...

    2022-04-04 漏洞 docker镜像 漏洞 动词

  • 动脑学院C/C++ Linux服务器开发/高级架构师课程价值5980元,百度网盘,阿里云盘下载

    这套课程来自自动脑学院C/CLiux服务器开发/高级架构师课程官网售价5980元.由Toy老师和Shae教师讲座旨在打造经典的高级架构师课程,培养低门槛Liux领域全能专业C/C开发工程师;零经验打造Liux结合教师项目的实践经验,分析和理解框架作者的思维,掌握本课程的联系,让您每月上升5-6K。课程一共34.94G文章底部的课程表和下载地址Toy老师2006年开始从事CBIOS固件开发、硬件驱动开发、嵌入式开发、应用软件开发、服务器软件开发、游戏服务器开发、软件安全与ji开发。-从软件设计师到系统架构设计师,我相信一定有很多可用的经验来帮助你!Shae老师062013年毕业于中南大学计算机科学与技术专业,一线研发13年。曾任华为中央研发部、国防科技大学卫星导航中心、齐心云计算、高级研发工程师、后台服务器总监、研发总监。c/liux熟悉大规模服务器开发、物联网和区块链技术的技术栈。动脑学院C/CLiux随机截图服务器开发/高级架构师视频适用人群:本课程适用于有C/C项目经验人群。课程目录:CLiux服务器开发高级架构师课程[34.9G]┣━━专题1Liux先进的服务器开发[21.4G]┃┣━━分析招聘要求[789.9M]┃┃┗━━分析招聘要求_20181123_151336.m4[789.9M]┃┣━━l01课程简介和项目准备[584.2M]┃┃┣━━作业01.txt[59B]┃┃┣━━Leio-01-课程简介和项目准备.m4[574.6M]┃┃┗━━Leio-01-课程简介和项目准备.t[9.6M]┃┣━━l02Liux介绍和环境安装[690.5M]┃┃┣━━Leio-02-Liux介绍和环境安装.m4[689.2M]┃┃┗━━Leio-02-Liux介绍和环境安装.t[1.3M]┃┣━━l03项目文档和架构设计[759.1M]┃┃┣━━文件模板.rar[16.4M]┃┃┣━━Leio-03-项目文件和架构设计.m4[735M]┃┃┗━━Leio-03-项目文件和架构设计.t[7.7M]┃┣━━l04[356.3M]┃┃┣━━Leio-04-介绍敏捷开发流程.m4[351.9M]┃┃┗━━Leio-04-介绍敏捷开发流程.t[4.5M]┃┣━━l05Shell编程[1G]┃┃┣━━Leio-05-Shell编程.m4[1G]┃┃┗━━Leio-05-Shell编程.t[1.1M]┃┣━━l06用git这个利器可以帮你管理源[696.6M]┃┃┗━━Leio-06-Git.m4[696.6M]┃┣━━l07lua语言[619.2M]┃┃┗━━Leio-07-Lua语言.m4[619.2M]┃┣━━l08gtet单元测试[682.1M]┃┃┗━━Leio-08-gtet单元测试.m4[682.1M]┃┣━━l09项目编译[614.9M]┃┃┗━━Leio-09-项目编译.m4[614.9M]┃┣━━l10调试技巧[720.6M]┃┃┗━━Leio-10-调试技巧.m4[720.6M]┃┣━━l11项目配置文件[436.1M]┃┃┗━━Leio-11-项目配置文件.m4[436.1M]┃┣━━l12项目日志[621.7M]┃┃┗━━Leio-12-项目日志.m4[621.7M]┃┣━━l13过程教程[429.4M]┃┃┗━━Leio-13-进程的概念.m4[429.4M]┃┣━━l14进程间通信[531.6M]┃┃┗━━Leio-14-进程间通信.m4[531.6M]┃┣━━l15网络协议[561.7M]┃┃┗━━Leio-15-网络协议.m4[561.7M]┃┣━━l16ocket第一讲[554M]┃┃┣━━Leio-16-ocket编程第一讲:TCP通信.m4[550.5M]┃┃┣━━rfc793.df[152.9K]┃┃┗━━ocket.rar[3.4M]┃┣━━l17ocket第二讲[359.8M]┃┃┣━━资料[6.5M]┃┃┃┣━━ud-iece.zi[65.7K]┃┃┃┣━━UDP分片原理分析及实现方法-20180706(1).tx[6.4M]┃┃┃┣━━udcliet_v1.c[1.2K]┃┃┃┗━━uderver_v1.c[1.5K]┃┃┗━━Leio-17-ocket编程第二讲:UDP通信.m4[353.3M]┃┣━━l18长连接和短连接[408.7M]┃┃┗━━Leio-18-TCP长连接和短连接.m4[408.7M]┃┣━━l19滑动窗户[554M]┃┃┗━━Leio-19-TCP流量控制.m4[554M]┃┣━━l20项目应用层协议设计[593.8M]┃┃┗━━Leio-20-htt协议介绍.m4[593.8M]┃┣━━l21应用层协议设计[471.8M]┃┃┗━━Leio-21-Brk介绍通信协议.m4[471.8M]┃┣━━l22rotouffer...

    2022-04-03 两个进程间通信 进程间通信线程间通信

  • 2020Web安全微专业—正式篇渗透/黑客/linux/网络安全/攻防/漏洞/kali(4、5、8期)价值6498元,百度网盘,阿里云盘下载

    这套课程来自控制安全学院We安全微专业-正式渗透/黑客/liux/网络安全/攻防/漏洞/kali,官网售价6498元,从0基础到深入一一讲解。没有基础的学生可以快速学习,逐渐掌握技能,照顾0基础学生或老学生。近年来,我发现越来越多的人在讨论信息安全。即使在做项目的时候,程序员也主动退出项目组,因为信息安全保护不够好。因此,我越来越认为信息安全真的很重要!目前从事售前技术支持,可以联系很多厂商,认识很多朋友,包括信息安全厂商。通过与他们的沟通,我了解到信息安全从业者非常稀缺,尤其是渗透测试工程师。我对信息安全有很强的兴趣,所以这个kali非常适合。本课程包括4期、5期和8期正式课程。18.3G文章底部的课程表和下载地址适用人群:1网工运维转岗2大学生就业3编程从业者4在职提升5黑客爱好者6寻求新方向课程目录:We安全微专业-正式渗透/黑客/liux/网络安全/攻防/漏洞/kali[18.3G]┣━━正式课第四课[3.7G]┃┣━━1开学典礼(1).m4[51.6M]┃┣━━2We服务器通信原理(1).m4[97.7M]┃┣━━3快速自建we安全试验环境(1).m4[86.8M]┃┣━━4前端基础HTML-写一个网页.m4[10.8M]┃┣━━5前端基础HTML—从QQ空间看HTML架构.m4[25.9M]┃┣━━6前端基础Divc-简介.m4[20.5M]┃┣━━7前端基础Divc-进阶.m4[20.6M]┃┣━━8后端基础SQL—数据库简介及SQL语法.m4[76.8M]┃┣━━9后端基础SQL—高级查询和子查询.m4[67.7M]┃┣━━10后端基础PHP—表格验证(1).m4[116.4M]┃┣━━11正则表达式.m4[103.1M]┃┣━━12-渗透测试的灵魂(1).m4[187.7M]┃┣━━13信息收集(1)(1).m4[108.4M]┃┣━━14网络架构-信息收集.m4[65.8M]┃┣━━15前端-信息收集.m4[76.7M]┃┣━━16系统-信息收集.m4[57.4M]┃┣━━17SQL注入原理分析(1).m4[140.9M]┃┣━━18HEAD注入(1).m4[113.5M]┃┣━━19盲注(1).m4[93.3M]┃┣━━20-XSS)(1).m4[95.5M]┃┣━━21存储型XSS(1).m4[98.9M]┃┣━━22DomBaedXSS(1).m4[95.4M]┃┣━━23CSRF(1).m4[102.7M]┃┣━━24文件上传漏洞-分析、验证、伪造(1).m4[162.7M]┃┣━━25文件上传漏洞-分析、验证、伪造(2)(1).m4[165.6M]┃┣━━26文件上传漏洞-分析、验证、伪造(3)(1).m4[114.1M]┃┣━━27XXE-实体注入(1).m4[147.1M]┃┣━━28SSRF-请求伪造服务器端(1).m4[77.4M]┃┣━━29变量覆盖漏洞(1).m4[133.3M]┃┣━━30本地包含与远程包含(1).m4[177M]┃┣━━31uerialize反序列化漏洞(1).m4[113.6M]┃┣━━32绕过验证码,找回密码漏洞(1).m4[152M]┃┣━━33平行越权、垂直越权(1).m4[136M]┃┣━━34支付漏洞(1).m4[92.3M]┃┣━━35Sql注入—0day审计案例(1)(1).m4[55.2M]┃┣━━36Sql注入—0day审计案例(2)(1).m4[186.4M]┃┗━━37就业指导-岗位、简历、内推(1).m4[161M]┣━━正式课第5[5.3G]┃┣━━1开学典礼(1).m4[175.8M]┃┣━━2We服务器通信原理(1).m4[106.9M]┃┣━━3快速自建we安全试验环境(1).m4[107.7M]┃┣━━4前端基础HTML-写一个网页.m4[10.8M]┃┣━━5前端基础HTML—从QQ空间看HTML架构.m4[25.9M]┃┣━━6前端基础Divc-简介.m4[20.5M]┃┣━━7前端基础Divc-进阶.m4[20.6M]┃┣━━8后端基础SQL—数据库简介及SQL语法.m4[76.8M]┃┣━━9后端基础SQL—高级查询和子查询.m4[67.7M]┃┣━━10后端基础PHP—简介及基本函数-上.m4[64.3M]┃┣━━11后端基础PHP—简介及基本函数-下.m4[83.6M]┃┣━━12后端基础PHP—表格验证(1).m4[124.4M]┃┣━━13正则表达式.m4[103.1M]┃┣━━14信息搜集的意义—渗透测试的灵魂(1).m4[100.3M]┃┣━━15信息收集(1)(1).m4[175.3M]┃┣━━16网络架构-信息收集.m4[65.8M]┃┣━━17前端-信息收集.m4[76.7M]┃┣━━18系统-信息收集.m4[57.4M]┃┣━━19SQL注入原理分析(1).m4[117M]┃┣━━20解释渗透试验常用工具(1).m4[171.8M]┃┣━━21HEAD注入(1).m4[126.1M]┃┣━━22盲注(1).m4[134.7M]┃┣━━23注入宽字节(1).m4[109.7M]┃┣━━24Acce注入—Cookie注入(1).m4[128.9M]┃┣━━25Acce-偏移注入(1).m4[87.2M]┃┣━━26MySQL注入—D注入(1).m4[100.2M]┃┣━━27MSSQL注入-反弹注入(1).m4[128.3M]┃┣━━28Oracle注入-报错注入(1).m4[96.2M]┃┣━━29XSS原理分析与解剖(1).m4[164.9M]┃┣━━30存储型XSS(1).m4[124.4M]┃┣━━31DomBaedXSS(1).m4[119M]┃┣━━32跨站请求伪造-CSRF(1).m4[149.1M]┃┣━━33文件上传漏洞-分析、验证、伪造(1).m4[185.4M]┃┣━━34文件上传漏洞-分析、验证、伪造(2)(1).m4[194.6M]┃┣━━35文件上传漏洞-分析、验证、伪造(3)(1).m4[96.7M]┃┣━━36绕过验证码,找回密码漏洞(1).m4[128.2M]┃┣━━37平行越权,垂直越权(1).m4[141.4M]┃┣━━38支付漏洞(1).m4[119.3M]┃┣━━39XXE-实体注入(1).m4[165.6M]┃┣━━40SSRF-请求伪造服务器端(1).m4[155.3M]┃┣━━41变量覆盖漏洞(1).m4[204.3M]┃┣━━42本地包含和远程包含(1).m4[171.7M]┃┣━━43uerialize反序列化漏洞(1).m4[152.7M]┃┣━━46就业指导-岗位、简历、内推(1).m4[175.6M]┃┣━━440day审计实战案例(1)(1).m4[168.9M]┃┗━━450day审计实战案例(2)(1).m4[188.8M]┗━━正式课第8[9.2G]┣━━1虚拟机安装.m4[55.7M]┣━━2开学典礼(1).m4[171.1M]┣━━3We服务器通信原理(1).m4[198.3M]┣━━4快速自建we安全试验环境(1).m4[103.1M]┣━━5前端基础.m4[96.8M]┣━━6后端基础SQL—数据库简介及SQL语法.m4[125.5M]┣━━7后端基础SQL—高级查询与子查询.m4[100.9M]┣━━8后端基础PHP—简介及基本函数-上.m4[153.7M]┣━━9后端基础PHP—简介及基本函数-下.m4[154.8M]┣━━10后端基础PHP—表格验证(1).m4[128.8M]┣━━11正则表达式(1).m4[113.1M]┣━━12-渗透测试的灵魂(1).m4[174.5M]┣━━13信息收集(1)(1).m4[258.1M]┣━━14网络架构-信息收集.m4[65.8M]┣━━15前端-信息收集.m4[76.7M]┣━━16系统-信息收集.m4[57.4M]┣━━17SQL注入原理分析(1).m4[174.2M]┣━━18解释渗透试验常用工具(1).m4[164.4M]┣━━19HEAD注入(1).m4[195.4M]┣━━20盲注(1).m4[134.1M]┣━━21注入宽字节(1).m4[121.6M]┣━━22Acce注入—Cookie注入(1).m4[132.8M]┣━━23Acce-偏移注入(1).m4[118.3M]┣━━24MySQL注入—D注入(1).m4[114.9M]┣━━25MSSQL注入-反弹注入(1).m4[121.1M]┣━━26Oracle注入-报错注入(1).m4[117.2M]┣━━27XSS原理分析与解剖(1).m4[192.8M]┣━━28存储型XSS(1).m4[119.7M]┣━━29DomBaedXSS(1).m4[184.1M]┣━━30跨站请求伪造-CSRF(1).m4[188.3M]┣━━31文件上传漏洞-分析、验证、伪造(1).m4[213.9M]┣━━32文件上传漏洞-分析、验证、伪造(2)(1).m4[194.9M]┣━━33文件上传漏洞-分析、验证、伪造(3)(1).m4[190.4M]┣━━34绕过验证码,找回密码漏洞(1).m4[226.2M]┣━━35越权-通过修改参数获得管理员权限.m4[142.1M]┣━━36SSRF-请求伪造服务器端(1).m4[151.5M]┣━━37支付漏洞.m4[155.1M]┣━━38XXE-实体注入(1).m4[187.1M]┣━━39变量覆盖漏洞(1).m4[242.9M]┣━━40uerialize反序列化漏洞(1).m4[263.6M]┣━━41本地包含和远程包含.m4[137.2M]┣━━42内网渗透-在内网旅游中发现更多漏洞(上)(1).m4[280M]┣━━43内网渗透-在内网旅游中发现更多漏洞(下)(1).m4[179.7M]┣━━44移动端渗透试验-A渗透试验[上](1).m4[234.2M]┣━━45移动端渗透试验-A渗透试验[下](1).m4[213.4M]┣━━46福利附送课-绕过阻挡我们的Waf(上).m4[189.6M]┣━━47福利附送课-实战代码审计(下).m4[230.5M]┣━━48福利附送课-利用MSF拿下服务器.m4[163M]┣━━49就业指导-岗位、简历、内推(1).m4[309.2M]┗━━基础福利课.zi[1.4G]相关下载点击下载...

    2022-04-04 上传漏洞和解析漏洞 常见上传漏洞

  • 2020马哥Linux云计算架构高薪班/名师亲授/协议班价值15800元(不完整版),百度网盘,阿里云盘下载

    本课程来自马哥教育:2020年马哥教育Liux云计算架构高薪班/名师亲授/协议班价值15800元,由马哥教育教学总监南山先生讲授。课程讲得很好,配套实验手册和笔记物有所值。课程体系大纲介绍:liux基础、服务和安全Liux集群、We站点架构及组件、运维工具、分布式存储系统、存储服务、虚拟化及容器技术、云计算掌握(3大运维基础夯实)解决学生入]难点,确保学生100%入门按照企业环境标准要求实现:Liux掌握系统安装、管理和使用Shell脚本、网络、安全攻防、企业级服务应用。课程更新到11章暂时不完整,不需要问客服是否完整。如果后期有完整的,会补上。!适合人群:大学生毕业就业寻求转岗技术liux提升充电职场升值加薪自我实现创业2020马哥Liux云计算架构高薪班/名师亲教/协议班视频截图课程目录:马哥教育2020Liux云计算运维工程师课程[19.2G]┣━━Liux2020课程视频[19.2G]┃┣━━01-马哥教育-年薪30万Liux云计算课程-云计算课程概览和计算机基础知识[2.3G]┃┃┣━━1计算机基础知识.avi[701.7M]┃┃┣━━2由计算机服务器硬件组成的.avi[675.6M]┃┃┣━━3操作系统基础知识.avi[380.4M]┃┃┗━━4Liux操作系统的起源和哲学思想.avi[608.3M]┃┣━━02-马哥教育-年薪30万Liux云计算课程-Liux安装和操作系统Liux基础命令[1.6G]┃┃┣━━2CetOS8及Uutu安装各种操作系统版本等.avi[394.8M]┃┃┣━━3Liux登录和基本操作.avi[529.7M]┃┃┣━━4Liux命令执行过程和命令类型.avi[305.3M]┃┃┗━━5Liux常见命令.avi[384.9M]┃┣━━03-马哥教育-年薪30万Liux云计算课程-Liux命令帮助和文件管理命令[1.6G]┃┃┣━━1命令历史和帮助.avi[405.2M]┃┃┣━━2帮助命令的用法.avi[416.9M]┃┃┣━━3文件系统目录结构和基本文件操作命令.avi[504.6M]┃┃┗━━4复制和移动文件等基本操作.avi[263.2M]┃┣━━04-马哥教育-年薪30万Liux云计算课程-Liux重定向管道技术和用户管理命令[1.6G]┃┃┣━━1详细说明硬链接和软链接.avi[332.5M]┃┃┣━━2标准输出和错误重定向.avi[337.5M]┃┃┣━━3重定向和管道.avi[385.2M]┃┃┣━━4用户及组管理及相关配置文件.avi[291.1M]┃┃┗━━5用户和组的管理命令.avi[281.4M]┃┣━━05-马哥教育-年薪30万Liux云计算课程-文件权限管理和文本编辑工具vim[1.7G]┃┃┣━━1用户和组相关命令.avi[364.7M]┃┃┣━━2文件权限管理和默认权限管理.avi[347.1M]┃┃┣━━3文件的特殊权限和FACL.avi[327.7M]┃┃┣━━4文本编辑工具VIM.avi[338.5M]┃┃┗━━5文本编辑工具VIM.avi[323.3M]┃┣━━06-马哥教育-年薪30万Liux云计算课程-文本处理命令和文本搜索工具gre[1.4G]┃┃┣━━1文本处理工具.avi[430.6M]┃┃┣━━2文本处理工具.avi[338.6M]┃┃┣━━3正则表达式详解.avi[353.9M]┃┃┗━━4扩展正则表达式和gre.avi[309.8M]┃┣━━07-马哥教育-年薪30万Liux云计算课程-hell脚本编程基础介绍[1.7G]┃┃┣━━1hell脚本编程基基本变量.avi[420.1M]┃┃┣━━2hell脚本编程基本算术和逻辑操作.avi[309M]┃┃┣━━3hell脚本编程基础的特殊变量.avi[343.8M]┃┃┣━━4hell脚本编程基本条件测试.avi[394.8M]┃┃┗━━5hell配置环境文件.avi[281.9M]┃┣━━08-马哥教育-年薪30万Liux云计算课程-文件包装压缩命令和文本处理命令ed[2G]┃┃┣━━1脚本编程条件分支判断if和cae.avi[371.7M]┃┃┣━━2文件的查找locate和fid.avi[419.1M]┃┃┣━━3xarg文件压缩和包装工具.avi[637.8M]┃┃┣━━4三剑客之一的文本处理ed基本用法.avi[331.6M]┃┃┗━━5三剑客之一的文本处理ed生产实战技能.avi[237.4M]┃┣━━09-马哥教育-年薪30万Liux云计算课程-Liux软件包管理命令和私人软件包仓库管理[1.7G]┃┃┣━━2软件运行环境及编译过程.avi[264.3M]┃┃┣━━3软件包的相关概念和组成.avi[382.9M]┃┃┣━━4rm常用的包管理器.avi[352.8M]┃┃┣━━5实现yum仓库配置.avi[460.4M]┃┃┗━━6实现内部私有yum源.avi[260.9M]┃┣━━10-马哥教育-年薪30万Liux云计算课程-源码编译安装软件与磁盘分区管理命令[2.5G]┃┃┣━━1C详细说明源代码编译安装过程.avi[416.7M]┃┃┣━━2httd编译安装,脚本自动编译安装.avi[511.6M]┃┃┣━━3一键安装脚本httd和uutu软件包管理.avi[458.1M]┃┃┣━━4磁盘结构及分区模式MBR和GPT.avi[929.7M]┃┃┗━━5分区管理相关工具.avi[239.6M]┃┗━━11-马哥教育-年薪30万Liux云计算课程-文件系统挂载管理及RAID以及逻辑卷管理[1.2G]┃┣━━1管理和挂载文件系统.avi[525.9M]┃┣━━2持久挂载和wa管理.avi[250.2M]┃┣━━3各种RAID逻辑卷的工作原理.avi[234M]┃┗━━4逻辑卷管理和快照.avi[250.5M]┣━━Liux2020资料云盘[27.9K]┃┗━━03资料[27.9K]┃┣━━log[8.8K]┃┃┗━━.log[8.8K]┃┣━━crit39[10.8K]┃┃┗━━hello【.com】[10.8K]┃┗━━crit[8.3K]┃┣━━ccmd-1.4.h[2.8K]┃┗━━haoi_tower_1.1.h[5.5K]┗━━马哥教育2020Liux云计算运维工程师课程大纲(原版).df[12.3M]相关下载点击下载...

    2022-04-03 云计算技术架构 云计算系统架构

  • web安全工程师高薪正式班/渗透/白帽/linux/网络安全/ctf/零基础价值6698元(完结),百度网盘,阿里云盘下载

    课程来自掌控安全学院出品由聂风、MSS魔术手等团队打造的:we安全工程师高薪正式班/渗透/白帽/liux/网络安全/ctf/零基础官网售价6698元。课程包括7、8、9、11期更新完结,课程的基础原理是不做脚本小子,明白渗透测试原理,把从各大论坛贴把搜集视频教程的资料搜集员转变成拥有复现学习能力的安全学习者!拥有可持续化的自学学习能力!福利课程,掌握绕过waf的原理,学会内网渗透和a渗透。逻辑漏洞:从业务逻辑中挖掘漏洞,学会代码审计技能成为专业的渗透测试人员,理论+实战+SRC,让你离就业更进一步!2021年8月8日更新至12期完结,课程包括视频和课件资料。专注培养高薪高水平安全人才适用人群:1、网工运维转岗2、大学生就业3、编程从业者4、白帽爱好者5、大学生就业6、在职提升7、寻求新方向WEB安全相关课程:We安全微专业mdah正式篇渗透/黑客/liux/网络安全/攻防/漏洞/kali课程包括7、8、9、11期更新完整完结,课程目录和下载链接在文章底部we安全工程师高薪正式班/渗透/白帽/liux/网络安全/ctf/零基础视频截图课程目录:we安全工程师高薪正式班渗透白帽liux网络安全ctf零基础12期1虚拟机安装.m42开学典礼(1).m43We服务器通信原理(1).m44快速自建we安全测试环境(1).m45前端基础.m46后端基础SQLmdah数据库简介及SQL语法.m47后端基础SQLmdah高级查询与子查询.m48后端基础PHPmdah简介及基本函数-上.m49后端基础PHPmdah简介及基本函数-下.m410后端基础PHPmdah表单验证(1).m411正则表达式(1).m412信息搜集的意义mdah渗透测试的灵魂(1).m413信息搜集(一)(1).m414网络架构-信息收集.m415前端-信息收集.m416系统-信息收集.m417SQL注入的原理分析(1).m418渗透测试常用工具讲解(1).m419HEAD注入(1).m420盲注(1).m421宽字节注入(1).m422Acce注入mdahCookie注入.m423Acce注入mdah偏移注入.m424MySQL注入mdahD注入(1).m425MSSQL注入mdah反弹注入(1).m426Oracle注入mdah报错注入(1).m427XSS的原理分析与解剖(1).m428存储型XSS(1).m429DomBaedXSS(1).m430无画面-跨站请求伪造-CSRF(1).m431重制版跨站请求伪造-CSRF(1).m432文件上传漏洞解析、验证、伪造(一)(1).m433文件上传漏洞解析、验证、伪造(二)(1).m434文件上传漏洞解析、验证、伪造(三)(1).m435验证码绕过、密码找回漏洞(1).m435验证码绕过、密码找回漏洞(1).m436越权-普通用户居然也能登陆后台(1).m436越权-普通用户居然也能登陆后台(1).m437支付漏洞.m437支付漏洞1.cwlev38SSRF-服务器端请求伪造(1).m439XXE-实体注入(1).m440代码执行漏洞(1).m441本地包含与远程包含(1).m442变量覆盖漏洞(1).m443uerialize反序列化漏洞(1).m444命令执行漏洞(1).m444命令执行漏洞(1)1.cwlev45工具课-内网渗透-遨游内网找到漏洞(上)(1).m446工具课-内网渗透-遨游内网找到漏洞(下)(1).m447工具课-移动端渗透测试-A渗透测试(1).m448福利附送课-绕过阻挡我们的Waf(上).m449福利附送课-绕过阻挡我们的Waf(下).m450福利附送课-实战代码审计(上).m451福利附送课-实战代码审计(下).m452就业指导mdah岗位、简历、内推(1).m4课件.ziwe安全工程师高薪正式班渗透白帽liux网络安全ctf零基础11期10正则表达式(1).m411信息搜集的意义mdah渗透测试的灵魂(1).m412信息搜集(一)(1).m413网络架构-信息收集.m414前端-信息收集.m415系统-信息收集.m416Acce注入mdahCookie注入.m417Acce注入mdah偏移注入.m418MySQL注入mdahD注入(1).m419MSSQL注入mdah反弹注入(1).m41开学典礼(1).m420Oracle注入mdah报错注入(1).m421XSS的原理分析与解剖(1).m422存储型XSS(1).m423DomBaedXSS(1).m424跨站请求伪造-CSRF(1).m425文件上传漏洞mdah解析、验证、伪造(一).m426文件上传漏洞mdah解析、验证、伪造(二).m427文件上传漏洞mdah解析、验证、伪造(三).m428直播文件上传漏洞解析、验证、伪造(一)(1).m429直播文件上传漏洞解析、验证、伪造(二)(1).m42We服务器通信原理(1).m430直播文件上传漏洞解析、验证、伪造(三)(1).m431验证码绕过、密码找回漏洞(1).m432越权-普通用户居然也能登陆后台.m432越权-普通用户居然也能登陆后台~1.m433支付漏洞.m434SSRF-服务器端请求伪造(1).m435XXE-实体注入(1).m436代码执行漏洞(1).m437本地包含与远程包含(1).m438变量覆盖漏洞.m439uerialize反序列化漏洞(1).m43快速自建we安全测试环境(1).m440命令执行漏洞(1).m441工具课-内网渗透-遨游内网找到漏洞(上)(1).m442工具课-内网渗透-遨游内网找到漏洞(下)(1).m443工具课-内网渗透-遨游内网找到漏洞(下)(2).m444工具课-移动端渗透测试-A渗透测试(1).m445工具课-移动端渗透测试-A渗透测试(2).m446福利附送课-绕过阻挡我们的Waf(上).m447福利附送课-绕过阻挡我们的Waf(下).m448福利附送课-实战代码审计(上).m449福利附送课-实战代码审计(下).m44前端基础.m450就业指导mdah岗位、简历、内推(1).m45后端基础SQLmdah数据库简介及SQL语法.m46后端基础SQLmdah高级查询与子查询.m47后端基础PHPmdah简介及基本函数-上.m48后端基础PHPmdah简介及基本函数-下.m49后端基础PHPmdah表单验证(1).m4基础福利课.zi├we安全工程师高薪正式班渗透白帽liux网络安全ctf零基础7期10后端基础PHPmdah表单验证(1).m410后端基础PHPmdah表单验证(1)~1.m411正则表达式(1).m412信息搜集的意义mdah渗透测试的灵魂(1).m413信息搜集(一)(1).m414网络架构-信息收集.m415前端-信息收集.m416系统-信息收集.m417SQL注入的原理分析(1).m418渗透测试常用工具讲解(1).m419HEAD注入(1).m41开学典礼(1).m41虚拟机安装.m420盲注(1).m421宽字节注入(1).m422Acce注入mdahCookie注入(1).m423Acce注入mdah偏移注入(1).m424MySQL注入mdahD注入-试听版(1).t25MySQL注入mdahD注入-完整版(1).t26MSSQL注入mdah反弹注入(1).t27Oracle注入mdah报错注入(1).t28XSS的原理分析与解剖(1).t29存储型XSS(1).t2We服务器通信原理(1).m430DomBaedXSS(1).t31跨站请求伪造-CSRF(1).t32文件上传漏洞mdah解析、验证、伪造(一).t33文件上传漏洞mdah解析、验证、伪造(二).t34文件上传漏洞mdah解析、验证、伪造(三).t35验证码绕过、密码找回漏洞.t36越权-通过修改参数获取管理员权限.t37利用工具快速拿下服务器.t38SSRF-服务器端请求伪造(1).t39支付漏洞(1).t3快速自建we安全测试环境(1).m440XXE-实体注入(1).t41变量覆盖漏洞(1).t42本地包含与远程包含(1).t43uerialize反序列化漏洞(1).t440day审计实战案例(上)(1).t450day审计实战案例(下)(1).t460day审计实战案例(下)(2).t47Bya-绕过阻挡我们的Waf(上).t48Bya-绕过阻挡我们的Waf(下).t49就业指导mdah岗位、简历、内推(1).t4前端基础.m45后端基础SQLmdah数据库简介及SQL语法(1).m46特约课-杀毒软件原理与绕过(1).m47后端基础SQLmdah高级查询与子查询(1).m48后端基础PHPmdah简介及基本函数-上(1).m49后端基础PHPmdah简介及基本函数-下(1).m4├we安全工程师高薪正式班渗透白帽liux网络安全ctf零基础8期10正则表达式(1).m411信息搜集的意义mdah渗透测试的灵魂(1).m412信息搜集(一)(1).m413网络架构-信息收集.m414前端-信息收集.m415系统-信息收集.m416SQL注入的原理分析(1).m417渗透测试常用工具讲解(1).m418HEAD注入(1).m419盲注(1).m41开学典礼(1).m41虚拟机安装.m420宽字节注入(1).m421Acce注入mdahCookie注入(1).m422Acce注入mdah偏移注入(1).m423MySQL注入mdahD注入(1).m424MSSQL注入mdah反弹注入(1).m425Oracle注入mdah报错注入(1).m426XSS的原理分析与解剖(1).m427存储型XSS(1).m428DomBaedXSS(1).m429跨站请求伪造-CSRF(1).m42We服务器通信原理(1).m430跨站请求伪造-CSRF(2)-副本.m430跨站请求伪造-CSRF(2).m431文件上传漏洞mdah解析、验证、伪造(一)(1).m432文件上传漏洞mdah解析、验证、伪造(二)(1).m433文件上传漏洞mdah解析、验证、伪造(三)(1).m434验证码绕过、密码找回漏洞(1).m435越权-通过修改参数获取管理员权限.m436SSRF-服务器端请求伪造(1).m437支付漏洞.m438XXE-实体注入(1).m439变量覆盖漏洞(1).m43快速自建we安全测试环境(1).m440uerialize反序列化漏洞(1).m441本地包含与远程包含.m442内网渗透-遨游内网找到更多漏洞(上)(1).m443内网渗透-遨游内网找到更多漏洞(下)(1).m444移动端渗透测试-A渗透测试[上](1).m445移动端渗透测试-A渗透测试[下](1).m446福利附送课-绕过阻挡我们的Waf(上).m447福利附送课-绕过阻挡我们的Waf(上).m448福利附送课-实战代码审计(上).m449福利附送课-实战代码审计(下).m44前端基础.m450福利附送课-利用MSF拿下服务器.m451就业指导mdah岗位、简历、内推(1).m45后端基础SQLmdah数据库简介及SQL语法.m46后端基础SQLmdah高级查询与子查询.m47后端基础PHPmdah简介及基本函数-上.m48后端基础PHPmdah简介及基本函数-下.m49后端基础PHPmdah表单验证(1).m4├we安全工程师高薪正式班渗透白帽liux网络安全ctf零基础9期10正则表达式(1).m411信息搜集的意义mdah渗透测试的灵魂(1).m412信息搜集(一)(1).m413网络架构-信息收集.m414前端-信息收集.m415系统-信息收集.m416SQL注入的原理分析(1).m417渗透测试常用工具讲解(1).m418HEAD注入(1).m419盲注(1).m41开学典礼(1).m420宽字节注入(1).m421Acce注入mdahCookie注入(1).m422Acce注入mdah偏移注入(1).m423MySQL注入mdahD注入(1).m424MSSQL注入mdah反弹注入(1).m425Oracle注入mdah报错注入(1).m426XSS的原理分析与解剖(1).m427存储型XSS(1).m428DomBaedXSS(1).m429跨站请求伪造-CSRF(1).m42We服务器通信原理(1).m430文件上传漏洞mdah解析、验证、伪造(一)(1).m431文件上传漏洞mdah解析、验证、伪造(二)(1).m432文件上传漏洞mdah解析、验证、伪造(三)(1).m433验证码绕过、密码找回漏洞(1).m434越权-普通用户居然也能登陆后台(1).m435支付漏洞.m436SSRF-服务器端请求伪造(1).m437XXE-实体注入(1).m438变量覆盖漏洞(1).m439uerialize反序列化漏洞(1).m43快速自建we安全测试环境(1).m440本地包含与远程包含.m441工具课-内网渗透-遨游内网找到漏洞(上)(1).m442工具课-内网渗透-遨游内网找到漏洞(上)(2).m443工具课-内网渗透-遨游内网找到漏洞(中)(1).m444工具课-内网渗透-遨游内网找到漏洞(下)(1).m445工具课-移动端渗透测试-A渗透测试(1).m446福利附送课-绕过阻挡我们的Waf(上).m447福利附送课-绕过阻挡我们的Waf(上).m448福利附送课-实战代码审计(上).m449福利附送课-实战代码审计(下).m44前端基础.m450就业指导mdah岗位、简历、内推(1).m45后端基础SQLmdah数据库简介及SQL语法.m46后端基础SQLmdah高级查询与子查询.m47后端基础PHPmdah简介及基本函数-上.m48后端基础PHPmdah简介及基本函数-下.m49后端基础PHPmdah表单验证(1).m4基础福利课.zi...

    2023-03-03 你认为对上传漏洞的修补 哪一种方式比较彻底

  • 个人投资者实战指南—如何做好资产配置价值9999元,百度网盘,阿里云盘下载

    这门课是基于耶鲁大学史文森大师在资产配置上的理念,是高淳资本张磊的向导。结合当今时代和国情,谈谈个人如何进行资产配置。本课程是基于史文森和大卫达斯特的《非典型成功》和《资产配置艺术》的精髓,结合中国个人投资者的实际情况。听过课的学生评价非常适合国内情况,枯燥的理论很容易理解。课程目录:个人投资者实战指南-如何做好资产配置一、资产配置要素.m4三、资产配置的基本原则.m4二、资产配置过程.m4四、个人投资者的行为特征.m4五、如何区分资产类别.m4六、资产配置再平衡.m4七、如何配置资产.m4八、资产回报率基本分析.m4九、个人如何行动.m4相关下载点击下载...

    2022-04-03

  • 嵌入式Linux驱动模板精讲与项目实践(txt+pdf+epub+mobi电子书下载)|百度网盘下载

    作者:林锡龙出版社:电子工业出版社格式:AZW3,DOCX,EPUB,MOBI,PDF,TXT嵌入式Liux驱动模板精讲与项目实践试读:前言一、行业背景嵌入式Liux驱动开发涉及的知识点比较多,要求开发者掌握的技能也比较多,且内核知识点比较分散,对于初学者来说门槛比较高,而嵌入式Liux在各行各业中已被广泛应用,在物联网、通信行业、航空航天、消费电子、汽车电子等行业中急需掌握嵌入式Liux软件开发的研发人员。近年来,随着嵌入式应用越来越广泛,嵌入式Liux开发变得更加复杂,嵌入式Liux驱动开发已经成为嵌入式应用领域的一个重大课题。二、关于本书本书大部分内容基于专业培训机构特训的讲稿。在专业培训提倡的嵌入式Liux驱动的模板式教学中取得了很好的效果,在此之上结合一线研发经验对驱动开发进行战略性指导,其中很多关键点是作者花了很长时间实实在在整理出来的,旨在揭晓嵌入式Liux驱动中的各种机制,达到知其然且知其所以然的目的。本书各章内容说明如下。第1章为驱动总论,是驱动开发在高层次上的介绍。第2章介绍的内核编程及基础知识点是驱动开发的基础,对驱动开发涉及的Liux内核中的各个知识点进行介绍,旨在扫清对Liux内核阅读的障碍。第3章介绍驱动模块开发,涉及各种模块移植中常见的设备方法,其中各个模板可以直接应用到实际研发中。第4章结合Liux操作系统讲解互斥机制在各种情况下的使用,重点分析各种机制的使用注意事项。第5章重点介绍Liux中断的上下部机制及Liux提供的各种接口,强调中断程序设计的基本理念及设计手段。第6章介绍Liux驱动中字符设备驱动的高级设备方法。第7章在Liux子系统的层面上介绍各种高级设备驱动。第8章重点介绍如何使用虚拟文件系统,这些实用技巧是一线研发的经验总结。第9章对设备驱动模型各个元素进行讲解,并介绍如何一步步手动建立设备驱动模型模板。第10章手把手带领读者建立最基本的文件系统,并制作各种常见的文件系统,其中穿插介绍各种实用技巧及实际研发工具。第11章介绍一线研发人员使用的开发调试技巧,重点强调实用。第12章结合V字形开发模型在嵌入式Liux驱动开发中的具体实施进行总结。第13章介绍嵌入式Liux设备驱动编程规范。三、本书特色●一线研发实战经验积累,所有技巧及讲解使用的工具都可以直接应用到实际开发工作中。●采用模板的方式对分散的各种驱动知识点进行讲解,所有模板都可以直接引用。●对每个知识点都提供实际案例,从模块的原理介绍,到系统层次的分析,图文并茂,力求分析透彻。●提供了大量的驱动例程,这些例程可以快速应用在实际开发中,读者可以直接运行调试。●结合实际研发工作对开发过程中的思考进行总结,重在实用。四、作者介绍本书由林锡龙编著,编著者在写作过程中查阅了大量开源工具及互联网上的资料,对各种资料的作者不能一一列举,在此表示谢意。由于时间仓促,书中程序和图表较多,错误之处在所难免,请广大读者批评指正。作者电子邮箱:wlxl_1204@163.com。编著者第1章驱动总论1.1总论1.1.1驱动在内核中的比例在Liux内核中,驱动程序的代码量占有相当大的比重。图1.1是一幅Liux内核代码量的统计图(单位:行数),对应的内核版本是2.6.29。从图中可以很明显地看到,在Liux内核中驱动程序(driver)的代码超过了500万行,所占的比例最高。图1.1Liux内核代码量统计图1.1.2驱动开发需要具备的能力目前,Liux软件工程师大致可分为两个层次。(1)Liux应用软件工程师。Liux应用软件工程师主要利用C库函数和LiuxAPI进行应用软件的编写。(2)Liux固件工程师。Liux固件工程师主要进行Bootloader、Liux的移植及Liux设备驱动程序的设计。一般而言,对固件工程师的要求要高于应用软件工程师,而其中的Liux设备驱动编程又是Liux程序设计中比较复杂的部分,究其原因,主要包括如下几个方面。(1)设备驱动属于Liux内核的部分,编写Liux设备驱动需要有一定的Liux操作系统内核基础。(2)编写Liux设备驱动需要对硬件原理有相当的了解,大多数情况下是针对一个特定的嵌入式硬件平台编写驱动的。(3)Liux设备驱动中广泛涉及多进程并发的同步、互斥等控制,容易出现ug。(4)由于Liux设备驱动属于内核的一部分,所以它的调试也相当复杂。Liux设备驱动的开发要求比较高,要求开发人员掌握一定的硬件知识、Liux内核技能、操作系统并发概念和较高的软件编程驾驭能力,Liux设备驱动程序作为内核的一部分运行,像其他内核代码一样,如果出错将导致系统严重损伤。一个编写不当的驱动程序甚至会导致系统崩溃,导致文件系统破坏和数据丢失,所以对Liux设备驱动开发比对应用程序要求高得多。Liux驱动的编写涉及如下主题。(1)内核模块、驱动程序的结构。(2)驱动程序中的并发控制。(3)驱动程序中的中断处理。(4)驱动程序中的定时器。(5)驱动程序中的I/O与内存访问。(6)驱动程序与用户程序的通信。实际内容错综复杂,掌握起来也有难度,但从本质上来说,这些内容仅分为两类。(1)设备的访问。(2)对设备访问的控制。前者是目的,而为了达到访问的目的,又需要借助并发控制等辅助手段。1.1.3驱动开发重点关注的内容初看起来Liux设备驱动开发涉及的内容很多,而需要实现驱动的设备又千差万别,其实质主要包括以下几点内容。(1)对驱动进行分类,先归纳为是哪种类型的驱动,归类正确再利用内核提供的子系统进行开发,这时往往会发现很多通用的事情内核已经做了。一个优秀的驱动工程师应该最大限度地利用内核的资源,因为内核已经实现的毕竟稳定性强、可移植性高。(2)找到内核提供的子系统后,接下来就是要制作该子系统对该类设备提供的表征,也就是描述该类驱动的结构体,然后定义这个结构体,把必要的数据进行初始化,最后调用该内核子系统提供的接口函数提交给内核管理。这是大部分驱动程序开发的战略流程。(3)明确子系统已经做了什么,需要在自己驱动中实现哪些内容,通常的做法是找一个接近的驱动程序进行修改,而不是一行一行地对代码进行编写。到内核中找接近的驱动例程是一个又快又好的方法。这些例程基本上都提供接口如何使用、调用流程等,借鉴已有例子可以避免低级错误。(4)以上都是与内核接口有关的,驱动另一个涉及的就是芯片手册,这个与做其他嵌入式软件一致,故对从单片机软件开发或者其他操作系统软件开发转过来做Liux驱动开发的人员来说,这部分是一个强项。(5)驱动的另外一个内容就是协议,包括各种嵌入式总线协议,从简单的SPI到复杂的PCI或者USB等。协议的基本知识是需要掌握的,好在内核对各种常见协议都是以子系统的形式提供的,在子系统中做了大部分共性工作,所以大大降低了驱动开发的工作量。综上所述,学好驱动开发,一个重要的方面就是对内核的学习,熟悉内核的组织和思维方式。1.2驱动理论与思想Liux对驱动的管理有自身的一套方法并提供相应的机制,但其具体实现可以由开发者自己决定。这一点可能比较抽象,但真正接触到实践之后,你会发现相同的一个功能,如点灯驱动,有很多实现方式——简单字符方式、cdev方式、mic实现、设备驱动模型等,对于设备的管理实现也有多种方法,只要你喜欢你可以写出很多种方式的驱动。正因为存在这么多种形式的驱动,初学者最初会比较茫然,进而觉得复杂,再后来就会感觉很灵活,然后感觉很多事情Liux已经做好了,你要做的就是熟悉一下它所提供的机制,然后正确调用其所提供的接口实现功能。从2.4到2.6,Liux内核在可装载模块机制、设备模型、一些核心API等方面发生较大改变。特别是引入设备模型,设备模型是一个难点,将由后续专门章节介绍。本章作为驱动理论将在一个更高的角度来总结内核对各种驱动所提供的相似点。之所以先提及设备模型,个人觉得真正理解Liux的驱动应该以设备模型为主线,设备驱动模型的提出涉及驱动管理方式的变化,如从原来手动创建设备文件到自动创建设备文件这个变化Liux引入了Udev系统,再展开来说,从设备模型中引入各种子系统、总线等概念,对这些进一步深入可以发现Liux提供各种驱动的core,如I2C-core,iut-core,rtc-core,erial_core等,如果打开阅读内核代码,你会发现在内核代码driver下对每种设备都进行了分类,而且每个文件夹下基本都有一个core文件,这些core文件已经对相应类型的驱动进行通用属性和行为的封装。市场上很多Liux驱动的书籍基本上都会对每种驱动以一个章节进行描述。在某种程度上讲,随着内核的发展,在驱动上尽量将各种类型的设备进行抽象,由内核里底层的代码,如总线驱动或此类设备共用的核心模块来实现共性的工作,从而简化设备驱动开发。设备模型的引入既在驱动设备管理上进行了分类又在文件系统上进行了统一。“一切皆文件”是Liux的设计思想,可以在Liux下的y虚拟文件系统中看到cla文件夹下有各种类型设备的相应文件夹。系统对设备的管理系统Udev也是按照cla下的文件进行设备文件创建的。当然这也只是众多主线之一,还有总线、设备、驱动等概念,提出这些概念及响应机制的目的是为了简化设备驱动的开发、管理与维护。Liux博大精深,且不断发展,新的特性不断涌现,知识点众多,为开发者和用户不断提供新的模块,我们必须抓住主线,逐个深入,长期积累。现在不少嵌入式驱动开发者在项目中只采用基本的属性行为,很少或者基本用不上高级特性功能,采用IOCTL方式进行用户与驱动之间的对话式交互,通过编制上下对应的IOCTL命令即可完成绝大部分工作。在对驱动开发应聘者的面试中可以发现,很多应聘者对设备模型理解不多或者不清楚,这对深入理解新内核驱动显然是不够的。1.2.1分类思想Liux对各种各样的设备进行分类,一般分为字符型设备、块设备和网络设备3种。但在内核中对于一个具体的设备还有细分,而且整个内核是按照不同细分种类的设备来提供支持的。在系统运行之后查看一下y/cla,图1.2所示为显示y/cla目录情况。图1.2y/cla目录并且可以看到各种类型的驱动。对于具体驱动来说,Liux内核还保留了一些固定的主设备号,在内核代码iclude\liux/Major.h中定义了一些默认的类型主设备号。比如:#defieMISC_MAJOR10/*混杂型设备*/#defieSCSI_CDROM_MAJOR11#defieMUX_MAJOR11#defieXT_DISK_MAJOR13#defieINPUT_MAJOR13/*输入型设备*/对于一个新的驱动来说,首先必须要确定一下要把它当哪类设备来处理,也就是归为哪类设备,然后再看内核在这类设备中提供的支持,最后调用这类设备的接口函数进行处理。当然,如果一个新驱动有接近类似的,那么还是在接近的驱动基础上进行修改。1.2.2分层思想对Liux的iut、RTC、MTD、I2C、SPI、TTY、USB等诸多设备驱动进行分析,可以看到大致都是按照分层次来设计的。市面上很多介绍Liux驱动的书籍在章节编排上一般先介绍该类型的硬件知识,再介绍协议和相关操作,然后再对实际例子进行分析。实际上,协议和相关操作是归纳在内核相对应的core或者类似core相关的文件中的。这样对于一个具体设备来说并不需要对该部分再进行一次编写。这就是分层思想带来的好处。Liux内核分层的框架设计用到了面向对象的设计思想。在设备驱动方面,往往为同类设备设计了一个框架,而框架中的核心层则实现了该设备通用的一些功能。如果具体设备不想使用核心层的函数则可以对其进行实现重载。图1.3所示为驱动核心层与实例之间的关系图。图1.3驱动核心层与实例之间的关系图1.iut子系统层次iut子系统整体系统框架如图1.4所示,整个系统是按一定层次进行划分和组织的。图1.4iut子系统整体系统框架图再回到内核相应的路径文件夹driver/iut下,图1.5所示为看到的输入子系统相关文件。图1.5Liux输入子系统相关文件这些文件分为事件层、核心层和处理层。每个文件夹对应的是一种类型的输入设备,会产生事件报告到核心层,核心层决定调用哪些处理层对事件进行分发,最后发送到用户空间相应的设备文件下。图1.6所示为iut子系统文件层次示意图。图1.6iut子系统文件层次示意图这是在Liux-2.6.24版本下的标准内核,当然如果有厂家需要自己添加相应的驱动即可以在事件层中添加底层操作的一个文件夹,然后在处理层中添加一个相应的文件并添加到iut系统中。2.RTC子系统层次接着移到driver/rtc目录下,该目录下的文件并没有像iut下那样组织,但是按照前面提过的Liux很多地方采用面向对象的方法抽象共同点,然后在实例化的指导下我们可以看出,下面这些rtc-×××.c带有型号的文件都是实例化的驱动。图1.7所示为Liux中RTC实例化文件。图1.7Liux中RTC实例化文件在RTC系统中使用的是latform总线,latform总线在后面设备模型中会重点介绍。这里只要理解为设备模型中“总线,驱动,设备”中的一种总线即可,而这些实例化的rtc-×××.c文件就是模型中的驱动,需要实现的是latform_driver结构,设备则放在相应体系结构中对应的目录下,如arch/arm/lat-3c24xx/下,需要实现的是latform_device。Liux已经提供latform总线,驱动是对应某个型号的芯片,基本上可以在driver/rtc目录下找到,那么驱动开发实际上就是完成系统中各个器件相应的设备描述即可,这就是驱动开发所要做的,而且熟悉之后工作量不是很大。至此,设备模型中的三个要素已经具备,只要驱动和设备注册成功且匹配,实际芯片就能正常工作。下面看一个采用Liux的RTC系统运行的例子,如图1.8所示。图1.8RTC系统运行实例这个cla中的rtc是在哪儿实现的呢?看一下driver/rtc下的cla.c文件:taticit__iitrtc_iit(void){rtc_cla=cla_create(THIS_MODULE,"rtc")…}这是RTC系统核心层附属的cla模块自动做的。也就是说,该子系统不但把RTC相关的共同操作提供了,而且还附带送上驱动模型这一套liux-2.6中的亮点特性。接下来回到本节主题,图1.9所示为RTC系统的层次结构图。图1.9RTC系统的层次结构图当系统运行起来之后,再看一下由rtc-roc.c所创建的roc虚拟文件系统文件:[root@FriedlyARMdriver]#wd/roc/driver[root@FriedlyARMdriver]#catrtcrtc_time:05:21:48rtc_date:2000-05-05alrm_time:00:00:00alrm_date:1970-01-01alarm_IRQ:oalrm_edig:o24hr:yeeriodic_IRQ:o还有由cla.c所创建的y虚拟文件系统文件:[root@FriedlyARMcla]#wd/y/cla[root@FriedlyARMcla]#ldiiutetci_geericvcfirmwareledci_hotvideo4liuxgrahicmemvru2oudvtcoolehwmomicrtcttyi2c-adatermmc_hotci_deviceuii2c-devmtdci_diku_device[root@FriedlyARMcla]#lrtcrtc0提示一下,该系统设备文件操作在RTC子系统核心rtc-dev.c文件中。taticcottructfile_oeratiortc_dev_fo={.ower=THIS_MODULE,.lleek=o_lleek,.read=rtc_dev_read,.oll=rtc_dev_oll,.ioctl=rtc_dev_ioctl,.oe=rtc_dev_oe,.releae=rtc_dev_releae,.fayc=rtc_dev_fayc,}3.MTD子系统层次相对而言,MTD会比较复杂,图1.10所示为Liux中MTD所处的层次。图1.10Liux中MTD所处的层次图1.11所示为MTD子系统框架图。图1.11MTD子系统框架图对于MTD子系统的优点,简单解释就是它实现了驱动设计者要去实现的很多功能。换句话说,有了MTD,使得你设计NadFlah的驱动所要做的事情要少很多很多,因为大部分工作都由MTD做好了。MTD比较复杂,在此只做简单介绍,后面有专门小节进行详细描述,这里可以按照前面介绍的方式对y/cla/mtd下的目录进行查看。[root@FriedlyARMcla]#lmtdmtd0mtd0romtd1mtd1romtd2mtd2ro[root@FriedlyARMcla]#catmtd/mtd0/ameBootloader[root@FriedlyARMcla]#catmtd/mtd0/ize4194304在Liux中,一个类别的设备驱动被归结为一个子系统,如PCI子系统、iut子系统、u子系统、ci子系统等。在内核文件结构中,driver目录下第一层中的每个目录都算一个子系统,每个目录都代表一类设备。每个子系统中都有一个uy_iitcall宏,例如:uy_iitcall(iit_ci)ci子系统uy_iitcall(iut_iit)iut子系统uy_iitcall(u_iit)u子系统uy_iitcall(mic_iit)mic子系统针对某个子系统内核使用uy_iitcall宏来指定初始化函数。使用uy_iitcall宏表示该部分代码比较核心,应该视为一个子系统,而不仅仅是一个内核模块。内核中将同类的驱动以子系统的方式进行管理,在子系统中抽象出共性部分,有些以core方式出现,如I2C-core,iut-core等,并对外提供主要接口函数,而对于驱动开发者来说就要最大限度地使用内核提供的子系统,对数据结构进行初始化并按照子系统提供的接口函数注册到相应的子系统中,简化驱动开发。关于子系统之间的消息传递,内核有自己的一套机制,称为内核通知链,内核通知链在后面章节介绍。1.2.3分离思想在内核大部分驱动中采用的是设备驱动模型,设备驱动模型中重要的三角关系就是总线、驱动和设备。其中,驱动和设备就是分离思想的体现,实现了驱动和资源的分离,如latform总线,在内核中支持了大部分驱动,抽象出来的就是设备的注册,往往需要做的接口就是Reource的传递。Reource是设备资源的体现,通过设备驱动模型传递到驱动中,采用设备和驱动都向总线注册的方式工作。这种分离思想所带来的好处就是驱动开发者真正要做的就是对资源的使用,将设备对应的资源注册到模型中,具体驱动的实现都是类似的。具体设备和相应驱动可以理解为成员和行为的关系,这两者的关系在设计上采用的就是分离思想。分离思想也为驱动设计带来很强的可移植性,同时也为驱动设计带来灵活性,另一方面也增加了系统的复杂度。在I2C驱动中采用适配器与从设备分离的设计方式是一个很好的说明。图1.12所示为I2C多控制器与多设备关系例图。图1.12I2C多控制器与多设备关系例图假如有3个CPU的I2C适配器A、B、C控制三个从设备a、、c,如果直接控制,则必须要实现9个读写函数,即A_ReadWrite_a()A_ReadWrite_()A_ReadWrite_c()B_ReadWrite_a()B_ReadWrite_()B_ReadWrite_c()C_ReadWrite_a()C_ReadWrite_()C_ReadWrite_c()可以看出,如果有N个适配器和M个从设备,那么将需要N×M个驱动,并且这N×M个驱动程序必然有很多重复代码,而且不利于驱动程序的移植。采用分离的思想是将适配器和从设备分离,通过总线驱动的方式进行管理,适配器和从设备分别注册到系统的I2C-core中。每个适配器和从设备都有相应的描述,分离之后只需要N+M个驱动描述,而且适配器和从设备之间几乎没有耦合性,增加一个适配器或者从设备并不会影响其余驱动。1.2.4总线思想总线是设备模型中核心三角关系之一,也是联系驱动和设备的纽带。采用总线管理方式作为处理器与设备之间的通道,将所有设备都通过总线相连。对于没有相应总线的设备可以归到“latform”虚拟总线上,如CPU上的片上外设。通过总线的管理,驱动和设备分别向某条总线注册,一旦两者匹配,设备就可以找到相应的驱动,这样对于多个设备来说,只要注册不同的设备device即可。总线的核心作用是:总线相关代码屏蔽了大量底层琐碎的技术细节,为驱动程序员提供了一组使用友好的接口,简化了驱动程序开发工作。关于总线,同样地利用y文件系统可以观察到系统已经存在的总线,图1.13所示为系统总线情况。图1.13系统总线情况这种思想的好处是可以在不同体系的CPU中进行快速移植,而且驱动与具体设备分开,另外一个最重要的好处就是对设备的管理。本章小结本章主要对驱动开发的情况在一定程度上进行描述,对Liux内核的一些思想进行总结,这些优秀的软件思想除了给我们学习使用内核、编写驱动提供很大帮助之外,很多优秀的设计思想也是软件开发中在总体设计上可以借鉴的。本章内容初学起来比较抽象,可以在后面章节学习之后再回过头来再学习一遍,或者在做了一段时间驱动之后再回过头来学习,对比编写过的驱动进行理解。第2章内核编程及基础知识点2.1内核线程内核线程就是内核的分身,一个分身可以处理一件特定事情。这在处理异步事件,如异步IO时特别有用。内核线程的使用是廉价的,唯一使用的资源就是内核栈和上下文切换时保存寄存器的空间。支持多线程的内核叫做多线程内核(Multi-ThreadKerel)。内核线程跟普通进程之间最大的区别就是只运行在内核态,不受用户态上下文的拖累。另外,内核线程没有独立的地址空间,mm(内存管理结构)指针被设置为NULL,它只在内核空间运行,从来不切换到用户空间中,并且和普通进程一样,可以被调度,也可以被抢占。内核线程与普通进程之间的比较如下。(1)内核线程只运行在内核态,而普通进程既可以运行在内核态(运行在内核态,如进行系统调用时进入内核态),也可以运行在用户态。(2)因为内核线程只运行在内核态,所以它们只使用大于PAGE_OFFSET的线性地址空间。另一方面,不管是在用户态还是在内核态,普通进程都可以用4GB的线性地址空间。(3)内核线程由系统内核负责创建、调度和管理。内核可以直接调度同一进程包含的所有线程,在多处理器系统中能使这些线程并发执行,同时克服了不同进程的线程之间的不公平。用户线程执行一个导致阻塞的系统调用时会导致整个进程阻塞,即使该进程的其他线程仍具备运行条件;另外,若操作系统是以进程为单位调度的,则分配给进程的时间片就由该进程的所有线程分享,在不同进程的线程之间会产生不公平现象。内核线程一旦启动起来会一直运行,除非该线程主动调用do_exit函数,或者其他进程调用kthread_to函数结束线程的运行。1.内核线程的编写1)所需头文件#iclude//wake_u_roce()#iclude//kthread_create()、kthread_ru()#iclude//IS_ERR()、PTR_ERR()2)模板句柄:tructtak_truct*kThread=NULL(1)线程函数(结合kerel_ru使用)taticitthreadFu(void*data){…while(!kthread_hould_to()){Doomethig()chedule_timeout(HZ)//让出CPU运行其他线程,并在指定的时间内重新被调度}资源释放retur0}(2)线程启动kerel_thread是主要的创建线程实现函数,为最原始函数,最终调用do_fork函数。kerel_thread需要使用deamoize释放资源并挂到iit下,还需要使用comlete等待这一过程的完成。模板:kerel_thread(fu,,CLONE_KERNEL)itfu(void*arg){wait_queue_twaitdeamoize("ked%",ame)iit_waitqueue_etry(amwait,curret)while(!atomic_read(am-gtkilled)){et_curret_tate(TASK_INTERRUPTIBLE)...chedule()}et_curret_tate(TASK_RUNNING)retur0}使用kthread_create不马上运行,需要wake_u_roce。使用kthread_ru函数实现线程的创建和启动,是kthread_create和wake_u_roce的组合。kThread=kthread_ru(threadFu,"helloworld",线程名称)kthread_ru函数是创建线程kthread_create()和激活线程wake_u_roce()的封装,内核提供比较简洁的接口kthread_ru,一步到位。(3)结束线程在模块卸载时,可以结束线程的运行。使用下面的函数:itkthread_to(tructtak_truct*k)模板:taticvoidtet_cleau_module(void){if(tet_tak){kthread_to(kThread)//发信号给tak,通知其可以退出了kThread=NULL}}module_exit(tet_cleau_module)在执行kthread_to时,目标线程必须没有退出,否则会oo。原因很容易理解,当目标线程退出时,其对应的tak结构也变得无效,kthread_to引用该无效tak结构就会出错。为了避免这种情况的发生,需要确保线程没有退出,其方法如代码中所示。thread_fuc(){while(!thread_could_to()){wait()}}exit_code(){kthread_to(_tak)//发信号给tak,通知其可以退出了}这种退出机制很温和,一切尽在thread_fuc()的掌控之中,线程在退出时可以从容地释放资源。3)注意事项(1)在调用kthread_to函数时,线程函数不能已经运行结束。否则,kthread_to函数会一直等待。(2)线程函数必须能让出CPU,以便能运行其他线程,同时线程函数也必须能重新被调度运行。在例子程序中,这是通过chedule_timeout()函数完成的。不能使用mdelay让出CPU,而应该使用chedule_timeout(),否则将导致系统无法响应。可以使用mlee_iterrutile让出CPU,在线程运行之后查看to可以看出,CPU的占用率很低,而使用chedule_timeout对CPU的占用率比较高。4)性能测试可以使用to命令来查看线程(包括内核线程)的CPU占用率。命令如下:to-线程号可以使用下面命令来查找线程号:aux|gre线程名注:线程名由kthread_create函数的第三个参数指定。2.内核线程例子创建内核线程,每隔1打印一次。#iclude#iclude#iclude#iclude#iclude#iclude#iclude#iclude#iclude#iclude#iclude#ifdefSLEEP_MILLI_SEC#defieSLEEP_MILLI_SEC(MilliSec)\do{\logtimeout=(MilliSec)*HZ/1000\while(timeoutgt0)\{\timeout=chedule_timeout(timeout)\延时不到,继续调度}\}while(0)#ediftatictructtak_truct*kThread=NULLtaticitkThreadFu(void*data){char*mydata=kmalloc(trle(data)+1,GFP_KERNEL)memet(mydata,'\0',trle(data)+1)trcy(mydata,data,trle(data))while(!kthread_hould_to()){SLEEP_MILLI_SEC(1000)ritk("%\",mydata)}kfree(mydata)retur0}taticit__iitiit_kthread(void){kThread=kthread_ru(kThreadFu,"lxlog","kThread")retur0}taticvoid__exitexit_kthread(void){if(kThread){ritk("tokThread\")kthread_to(kThread)}}module_iit(iit_kthread)module_exit(exit_kthread)MODULE_AUTHOR("lxlog")MODULE_LICENSE("GPL")2.2内核定时器内核定时器是基于软中断的基础实现的,其作用是在未来某个时间点到达时执行一个相应的动作,该相应的动作就是调用定时器绑定的函数。通常很多情况下需要定时执行一个动作,或者周期性地执行一个操作,如定时查询某个状态、定时打印、喂看门狗等,这在实际系统中应用很广泛。内核中维护定时器是通过一个定时器链表来实现的,一旦一个定时器被添加到系统中,即该定时器会被连接到定时器链表上,内核系统会不断查询该链表,检测在定时器链表上是否有时间到达的定时器,一旦发现定时器时间到达,即触发软中断去调用并执行该定时器绑定的函数。定时器在初始化时绑定的函数类似于定时器的中断服务程序。图2.1为内核定时器链表图。图2.1内核定时器链表图定时器包含文件:#iclude#iclude内核对象表征结构体:tructtimer_littimer初始化:iit_timer(amtimer)timer.data=time传给fuctio的参数timer.exire=jiffie+HZ1个jiffie大约为1m,1HZ为1timer.fuctio=timer_futioadd_timer(amtimer)将定时器添加到系统中绑定函数的实现:voidtimer_futio(uigedlogara){传入的参数uigedlogara为初始化时初始化的参数timer.data=time若需要重复周期性地执行该定时器,即调用mod_timer(amtimer,时间)}修改定时:mod_timer(amtimer,jiffie+(HZ*2))实际上是先杀死定时器,重新设置时间大小,再启动定时器定时器的删除:del_timer(amtimer);一般使用del_timer_yc()代替del_timer(),前者立即删除不执行,后者会继续执行到下一个到期定时器过期后会被系统自动删除,除非调用mod_timer函数重新启动定时器。del_timer(amtimer)在定时器没有过期的情况下才有意义。泛滥使用定时器会导致系统效率下降,因为定时器是基于中断实现的,并且在中断中定时器去操作硬件要考虑与进入定时器中断前的操作硬件之间的互斥问题。【案例分析】定时器使用不当。在驱动中使用定时器,加载驱动正常,运行正常。当卸载时出现:RmmodDrv系统崩溃出现以下错误:#[135.961105]Ualetohadlekerelagigrequetfordataataddre0xe30aade8[135.968588]Faultigitructioaddre:0xc0025d28[135.973548]Oo:Kerelacceofadarea,ig:11[#1]…[136.111687]Kerelaic-otycig:Fatalexcetioiiterrut分析加载驱动和卸载驱动过程:加载:dev_tdevodevo=MKDEV(DRV_MAJOR,0)reult=regiter_chrdev_regio(devo,1,"Drv")cdev_iit(amDrv_dev_P-gtDrv_c_dev,amDrv_o)reult=cdev_add(amDrv_dev_P-gtDrv_c_dev,devo,1)iit_timer(amDrv_dev_P-gttimer)Drv_dev_P-gttimer.fuctio=(void*)amdDogFuDrv_dev_P-gttimer.exire=jiffie+HZmod_timer(amDrv_dev_P-gttimer,jiffie+10)retur0卸载:cdev_del(amDrv_dev_P-gtDrv_c_dev)uregiter_chrdev(MKDEV(DRV_MAJOR,0),"DRV")卸载过程为加载过程的相反过程,在加载时申请的资源应该在卸载中释放。从以上过程来看,定时器在加载时初始化,但在卸载时没有注销,所以在rmmod该驱动时会出现系统崩溃。将卸载改为:del_timer(amDrv_dev_P-gttimer)cdev_del(amDrv_dev_P-gtm_c_dev)uregiter_chrdev(MKDEV(DRV_MAJOR,0),"DRV")编译之后加载,使用rmmod卸载成功。【小结】包含文件:#iclude#iclude对象:tructtimer_littimer初始化:iit_timer(amtimer)timer.data=time传给fuctio的参数timer.exire=jiffie+HZ1个jiffie大约为1m,1HZ为1timer.fuctio=timer_futio――gtvoidtimer_futio(uigedlogara)add_timer(amtimer)修改定时:mod_timer(amtimer,jiffie+(HZ*2))实际上是先杀死定时器,重新设置时间大小,再启动定时器定时器过期后会被系统自动删除。del_timer(amtimer)在定时器没有过期的情况下才有意义。按照毫秒或者微秒的量度:uigeditjiffie_to_mec(cotuigedlogj)uigeditjiffie_to_uec(cotuigedlogj)uigedlogmec_to_jiffie(cotuigeditm)uigedloguec_to_jiffie(cotuigeditu)2.3链表包含头文件:#iclude主要结构:tructlit_head{tructlit_head*ext,*rev}使用时将lit_head放在实际数据结构中,相当于lit_head承载一个数据结构。如:tructtudet{charame[100]itumtructlit_headlit}链表相关例子参考在所附光盘中。主要接口函数:tructlit_headtudet_lit初始化链表:INIT_LIST_HEAD(amtudet_lit)在链表尾部添加成员元素:lit_add(am(tudet[i].lit),amtudet_lit)扫描链表:tructlit_head*olit_for_each(o,amtudet_lit)到链表尾部才结束。取出链表元素:lit_etry(o,tructtudet,lit)Liux内核代码中已经提供了对链表的基本操作,在iclude/liux/lit.h中包含链表初始化、插入、删除、搬移、合并和遍历等操作,在驱动中需要时直接使用即可。2.4内存操作Liux2.6所有的内存分配函数包含在头文件中,而原来的不存在。老版本内存分配函数包含在头文件中。内核最下层申请函数为:get_free_age()lt----gtfree_age()常用内存分配函数如下。(1)__get_free_ageuigedlog__get_free_age(gf_tgf_mak,uigeditorder)__get_free_age函数是最原始的内存分配方式,直接从伙伴系统中获取原始页框,返回值为第一个页框的起始地址。__get_free_age在实现上只是封装了alloc_age函数。(2)kmem_cache_alloctructkmem_cache*kmem_cache_create(cotchar*ame,ize_tize,ize_talig,uigedlogflag,void(*ctor)(void*,tructkmem_cache*,uigedlog),void(*dtor)(void*,tructkmem_cache*,uigedlog))void*kmem_cache_alloc(tructkmem_cache*c,gf_tflag)kmem_cache_create/kmem_cache_alloc是基于la分配器的一种内存分配方式,适用于反复分配释放同一大小内存块的场合。首先用kmem_cache_create创建一个高速缓存区域,然后用kmem_cache_alloc从该高速缓存区域中获取新的内存块。kmem_cache_alloc一次能分配的最大内存由mm/la.c文件中的MAX_OBJ_ORDER宏定义,在默认的2.6.18内核版本中,该宏定义为5,于是一次最多能申请(1ltlt5)*4KB,也就是128KB的连续物理内存。分析内核源码发现,kmem_cache_create函数的ize参数大于128KB时会调用BUG()。(3)kmallocvoid*kmalloc(ize_tize,gf_tflag)kmalloc是内核中最常用的一种内存分配方式,它通过调用kmem_cache_alloc函数来实现。kmalloc一次最多能申请的内存大小由iclude/liux/kmalloc_ize.h的内容来决定,在默认的2.6.18内核版本中,kmalloc一次最多能申请的大小为131072B,也就是128KB的连续物理内存。测试结果表明,如果试图用kmalloc函数分配大于128KB的内存,编译则不能通过。(4)vmallocvoid*vmalloc(uigedlogize)前面几种内存分配方式都是物理连续的,能保证较短的平均访问时间。但是在某些场合,对内存区的请求不是很频繁,较长的内存访问时间也可以接受,这时就可以分配一段线性连续物理不连续的地址,所带来的好处是一次可以分配较大块的内存。vmalloc对一次能分配的内存大小没有明确限制。出于性能考虑,应谨慎使用vmalloc函数。(5)dma_alloc_coheretvoid*dma_alloc_coheret(tructdevice*dev,ize_tize,ma_addr_t*dma_hadle,gf_tgf)DMA是一种硬件机制,允许外围设备和主存之间直接传输I/O数据,而不需要CPU的参与,使用DMA机制能大幅提高与设备通信的吞吐量。在DMA操作中,涉及CPU高速缓存和对应的内存数据一致性问题,必须保证两者的数据一致,在x86_64体系结构中,硬件已经很好地解决了这个问题,dma_alloc_coheret和__get_free_age函数的实现差别不大,两者最终都调用_alloc_age函数来分配内存,它们所分配内存的大小限制一样,另外两者分配的内存都可以用于DMA操作。(6)ioremavoid*iorema(uigedlogoffet,uigedlogize)iorema是一种更直接的内存“分配”方式,使用时直接指定物理起始地址和需要分配内存的大小,然后将该段物理地址映射到内核地址空间。iorema用到的物理地址空间都是事先确定的,和上面的几种内存分配方式并不太一样,并不是分配一段新的物理内存。iorema多用于设备驱动,可以让CPU直接访问外部设备的I/O空间。iorema能映射的内存由原有的物理内存空间决定。(7)BootMemory如果要分配大量的连续物理内存,则上述分配函数都不能满足,只能用比较特殊的方式在Liux内核引导阶段来预留部分内存。在内核引导时分配内存:void*alloc_ootmem(uigedlogize)可以在Liux内核引导过程中绕过伙伴系统来分配大块内存。使用方法是在Liux内核引导时,调用mem_iit函数之前用alloc_ootmem函数申请指定大小的内存。如果需要在其他地方调用这块内存,可以将alloc_ootmem返回的内存首地址通过EXPORT_SYMBOL导出,然后就可以使用这块内存。这种内存分配方式的缺点是,申请内存的代码必须链接到内核中的代码里才能使用,因此必须重新编译内核,而且内存管理系统看不到这部分内存,需要用户自行管理。测试结果表明,重新编译内核后重启,能够访问引导时分配的内存块。通过内核引导参数预留顶部内存:在Liux内核引导时,传入参数“mem=ize”保留顶部的内存空间。比如,系统有256MB内存,参数“mem=248M”会预留顶部的8MB内存,进入系统后可以调用iorema(0xF800000,0x800000)来申请这段内存。几种分配函数的比较如表2.1所示。表2.1几种分配函数的比较最函数大分配原理其他名内存_get_f4M适用于分配较大量的连续物理内ree_直接对页框进行操作B存agekmem_cach128适合需要频繁申请释放相同大小基于la机制实现e_alloKB内存块时使用c基于kmallo128最常见的分配方式,需要小于页kmem_cache_alloc实cKB框大小的内存时可以使用现物理不连续,适合需要大内存,vmallo建立非连续物理内存但是对地址连续性没有要求的场c到虚拟地址的映射合dma_alloc_c基于__alloc_age实4M适用于DMA操作ohere现Btiorema实现已知物理地址到适用于物理地址已知的场合,如虚拟地址的映射设备驱动alloc_在启动kerel时,预小于物理内存大小,内存管理要ootm留一段内存,内核看求较高em不见2.5I/O端口几乎每种外设都通过读/写设备上的寄存器来访问,外设寄存器也称“I/O端口”,通常包括控制寄存器、状态寄存器和数据寄存器三大类,而一个外设寄存器通常被连续编址,描述的就是CPU对外设访问的方式取决于CPU对外设I/O端口编址的方式。ARM、M68K等只有一个物理空间,统一编址,外设I/O端口物理地址被映射到CPU单一物理地址空间,成为统一编址的一部分,即访问这种I/O地址无须专门外设的I/O指令。硬件上的差异对软件来说是完全透明的,可以将内存映射方式的I/O端口和外设内存统一看作I/O内存资源。X86等为外设专门实现一个独立空间,称为I/O地址空间,独立编址,与内存地址空间分开,并有专门的I/O指令(如X86的IN和OUT指令)访问。Liux在io.h头文件中声明了iorema(),用来将I/O内存资源的物理地址映射到核心虚拟地址空间(3~4GB)中。相应的取消映射函数为iouma()。2.6内核相关宏1.__iit位置:/iclude/liux/iit.h定义:#defie__iit__attriute__((__ectio__(".iit.text")))注释:这个标志符和函数声明放在一起,表示gcc编译器在编译时需要把这个函数放在.text.iitSectio中,而这个Sectio在内核完成初始化之后就会被释放掉。2.__iitdata位置:/iclude/liux/iit.h定义:#defie__iitdata__attriute__((__ectio__(".iit.data")))注释:这个标志符和变量声明放在一起,表示gcc编译器在编译时需要把这个变量放在.data.iitSectio中,而这个Sectio在内核完试读结束[说明:试读内容隐藏了图片]点击下载...

    2022-04-04 内核Linux 如何理解kabi 内核linux4.4.22

  • 探绿——居住区植物配置宝典(南方植物卷)(txt+pdf+epub+mobi电子书下载)|百度网盘下载

    作者:秦娜,大连万达商业地产有限公司出版社:清华大学出版社格式:AZW3,DOCX,EPUB,MOBI,PDF,TXT探绿-居住区植物配置宝典(南方植物卷)试读:专家荐语董丽北京林业大学园林学院/教授植物景观是居住环境中最生动的景观元素。它不仅因其美丽而愉悦身心,满足居民的使用功能,发挥生态效益,而且是文化表达的载体。本书以植物景观为主题,总结了住宅园林植物景观配置和植物图书馆,具有良好的实践意义。崔洪霞中国科学院植物研究所/副研究员直观的画面,简洁的文字,充分表达植物景观与生活环境的匹配规则;各种植物景观风格,适当的植物选择,指导景观节点;多维景观植物景观信息,为景观从业者提供良好的帮助。李迪华北京大学建筑与景观设计学院/副教授景观设计研究所/副院长本书记录并呈现了以万达集团为代表的企业在快速发展过程中在居住环境建设中追求植物景观的终极成就。出版宝藏的目的是让更多的从业者掌握它,然后呼吁下一个植物景观时代,更好地实现接近自然、低维护、多功能、社区参与和共享、追求安全和教育价值,反映人与自然的联系和关怀。《中国园林》杂志王绍增/主编华南农业大学林学与风景园林学院/教授园林绿化必须因地制宜。自古以来,模式化就是进入艺术领域的阶梯。本书紧紧抓住因地制宜和模式化两大纲,既能保证产品质量,又便于普遍推广。强健中国风景园林学会/副理事长良好的生态景观环境是优质居住区不可替代的组成部分。只有掌握科学和艺术规律,居住区才能锦上添花。本书在这方面进行了宝贵的探索,形成了与房地产协调、辉煌的设计例子。本书内容清晰,易于掌握,值得从业认真阅读。张佐双北京植物园/前园长中国植物学会植物园分会/理事长城市园林植物的选择和应用的基本要求是适当的树木,并尝试将当地树种与外来树种相结合。本书根据不同的地区提供了植物选择的方向,并对植物景观设计提出了配置意向,具有重要的参考意义。Preface我国植物资源丰富,园林植物种类繁多。随着城市建设的快速发展,特别是房地产业,园林植物在居住区得到了广泛的应用,对改善城市环境也起到了很好的作用。园林植物是园林景观的重要组成部分,也是生命的重要组成部分。利用植物单体或群体创造各种景观是美化景观和改善生活环境的重要组成部分。随着我国园林事业的快速发展,植物景观的技术和艺术取得了很大的进步。学者、景观设计师、景观工程师也非常重视植物景观设计和景观效果。本书从园林植物设计与实践出发,通过对居住区景观设计与实践的总结,完善了居住区植物景观的配置模式和常选择。本书从项目实践出发,内容结构合理,图文并茂,是园林景观从业者的好工具书。2016年10月11日,苏雪痕上一章植物配置模式第一章居住区概述1.1住宅建筑特点风格定位:ArtDeco、欧式、现代、地中海、加州;建筑特色:线条感强、高层、色彩沉稳、形式简洁。1.2居住区景观空间布局分析布局特点:底部业务包围;居住区建筑布局优先;高层建筑优先;景观节点:根据景观区域划分植物配置模式,分为以下八个节点。高端居住区平面图第二章植物配置理念2.1植物配置的基本原则强调空间关系:植物结合地形塑造空间,形成开合、主次分明、步移景观的空间关系;强调层次关系:注意植物群落的天际线和林缘线的节奏变化;强调季节变化:注意植物的四季变化,突出四季不同的观赏特点;强调对比关系:注意植物的高低、形态、质感、色彩、季节。2.2植物配置特点2.2.1空间组织的总体特征:适当得当,密度密集,开合自然,关系清晰;搭配技术:根据植物形式、颜色、纹理和空间需要形成多种景观;品种选择:多采用当地即时效果好、维护方便的品种,少采用季节性花卉。2.2.2高档住宅区植物配置特点乔灌木比例大,乔木规格高;树荫空间适宜;多种绿化配置模式,层次丰富。2.2.3中高档住宅区植物配置特点植物空间清晰明快,重点群体突出,草坪面积大。2.3植物配置模式分类节点1:入口植物配置模式节点2:核心景观植物配置模式节点3:单元入口植物配置模式节点4:人行道植物配置模式节点5:住宅活动广场植物配置模式节点6:住宅集中绿地植物配置模式节点7:消防道路植物配置模式节点8:外围植物配置模式第三章植物配置一般图解说明3.1植物株形说明3.2植物株形图3.2.1常绿乔木-针叶常绿乔木-阔叶常绿乔木-棕榈落叶乔木3.2.2花卉灌木、地被、花卉天然灌木整形灌木特种地被花卉3.2.3注:施工号苗的规格要求:1.所有苗木规格(胸部)/设计规格不得低于地径、高度、冠幅和分枝数;2.乔木的高度和冠幅不得超过设计规范0.5m。3.3常见的植物搭配形式3.3.1孤植单品种:丛生大乔(CQ8)列植:圆冠形大乔(CQ5)丛植:棕榈(CQ10)3.3.2低层次搭配:圆冠小乔木天然灌木整形灌木(LQ2G3G4G5D1H2)低层次搭配:特殊形状灌木卵圆形灌木整形灌木地面花卉(G9G2G5G4D2D1)低层次搭配:高冠形小乔木团冠形小乔自然状灌木整形灌木地被(CQ4LQ5G5G4D2D1)3.3.3疏朗搭配疏朗搭配:高冠乔木圆冠小乔天然灌木花(CQ4CQ5G3H1)疏朗搭配:丛生乔木天然灌木整形灌木(CQ8G3G4D2D1)疏朗搭配:高冠形乔木圆冠形小乔团冠形乔木天然灌木整形灌木花卉(CQ4CQ5LQ5G3G5G4D1H1)3.3.4多层次植物搭配多层次植物搭配:丛生大乔高冠大乔圆冠乔天然灌木整形灌木地被花卉(LQ4LQ1CQ4CQ5G3G4G6D1D2)多层次植物搭配:圆冠乔木塔锥形小乔天然灌木整形灌木特殊灌木地被(CQ5CQ6G3G6G4G6G9D1D2)3.3.5与园林素描和景墙搭配:丛生乔木圆冠小乔团冠小乔天然灌木整形灌木(LQ4CQ4CQ5LQ5G3G4G5G6D1D2H1)水景搭配:丛生大乔其他形状的乔团冠小乔天然灌木整形灌木特殊灌木水试读结束[注:试读内容隐藏图片]点击下载...

    2022-04-02 灌木乔木的区别 灌木乔木还有什么木

  • Kindle Paperwhite 4 谍照?变外观不变配置

    之前Kidle伙伴曾经发过一篇题为的文章《2017年度亚马逊将发布KidlePaerwhite4吗?》在这篇文章中,许多朋友留言说他们对下一代KPW的期望,如更大的屏幕、彩色屏幕、更快的速度、更大的空间等。然而,亚马逊对新产品一直保持低调,在新产品正式销售之前很少发布官方信息。第一款Kidle发布于2007年,到目前为止,已经10年了。即使亚马逊不能推出创新产品,它也应该对现有产品进行一些增量更新,最有可能是第四代KidlePaerwhite。昨晚(4月17日),有网友在Kidle贴吧发布了一篇帖子(目前该帖已被删除),贴出一张从Kidle代工厂泄露的疑似KidlePaerwhite4正面图,外观如下图所示:据透露,此前为亚马逊生产Kidle国际知名代工厂不再生产新系列,新KPW由一家国内企业接管。他还透露了一些与产品本身相关的细节,如新KPW和KV、KO一样,屏幕不再凹陷,变得纯净,但使用的材料比更多KV、KO略次,由塑料制成。增加防水功能。可能是因为所用的工艺和KV、KO屏幕可能与原因相同KV、KO有同样的常见病——轻微的阴阳屏现象。一般来说,新款KPW的主要变化是外观,配置没有变化,价格估计超过1000,预计下半年发布。此外,根据这位网友的分析,去年KO上市销售后,因为KV仍在销售的原因导致KO的销量不是很乐观,所以亚马逊在产品线上改变了主意,让这款新款Kidle取代KV的位置,即所谓的简化版KV。如果这个消息是真的,今年的新产品肯定会出现,但它可能会让对新产品期望过高的合作伙伴失望。亚马逊仍然在外观上努力工作,没有突破性的新技术,或者新技术的成本无法控制。...

    2022-04-05 kokindle

  • [每天读本书] Linux 之父自传《只是为了好玩》

    20世纪末,世界沉浸在极度兴奋之中。在一系列革命浪潮中,一场革命风暴席卷全球。几乎一夜之间,Liux操作系统引起了世界的关注。它来自创始人林纳斯·托瓦兹狭小的卧室诞生了,引起了无数极客的热烈追捧。瞬间,它出现在许多控制地球命脉的企业机房。从前Liux系统只是一个人的狂欢节,现在各大洲都有数百万用户,甚至南极洲也不例外。如果包括NASA前哨站,它甚至有外太空用户。在所有提供万维网数据共享的计算机服务器上,Liux是应用最广泛的操作系统。不仅如此,Liux独特的开发模式——一个由数十万程序员志愿者组成的强大社区,使它成为历史上最大的合作项目。它背后的开源哲学很简单:信息——特别是指操作系统的源代码或基本指令,应该免费向感兴趣改进的人开放,并自由共享。这些改进后的信息也应该自由共享。同样的想法已经支持了几个世纪的科学探索世界。现在这个想法也在企业领域扎根,它的潜力不难想象。在信息共享平台上,所有最美丽、最好的东西都可能诞生,比如一个完美的法律计划或一部美丽的歌剧。有些人瞥见了这个行业的未来趋势,但他们并不高兴。林纳斯戴着眼镜的胖脸印在微软员工喜欢玩的飞镖目标上,现在微软已经认为他是真正的头号敌人。然而,更多的时候,人们也想深入了解这个年轻人本身是什么样子的——这个年轻人开始借钱,实际上领导着这个职业。不幸的是,随着Liux他越来越不愿意谈论系统和开源运动的成功。Liux之父,他偶然创造了Liux,但只是因为我喜欢玩电脑(也因为其他一切都不如电脑有趣)。因此,当有人告诉他,数百万追随者希望至少亲眼目睹他的风格,并说服他在重要活动中发表演讲时,林纳斯善良地提出,他愿意在活动中亲自玩落水台游戏。他觉得这更有趣,可以筹集资金。他们礼貌地拒绝了。他们心目中革命的商业形式并非如此。革命者不是天生的,革命不能提前安排,革命不能受到影响。但革命往往就是这样发生的。……注:以上是大卫·戴蒙为这本书写的引言,原标题《革命风暴随手记》——————–副标题:Liux之父林纳斯自传作者:[美]LiuTorvald/DavidDiamod评分:8.5本书是Liux之父LiuTorvald自传,也是Liu唯一的书。Liu用调侃的语气讲述了自己的成长经历。在他看来,一切都是为了好玩,兴趣导致革命。书的内容分为五章,部分是Liu自己写的,有的是合作者DavidDiamod的评论。林纳斯·开源操作系统Liux之父。1997年出生于芬兰,毕业于赫尔辛基大学~2003在美国加州硅谷的全美达公司工作,现在在开源代码开发实验室工作,全力开发Liux内核。2004年,他被《时代周刊》评为世界最有影响力的人之一。大卫·职业作家戴蒙曾为《纽约时报》、《连线》、《美国周末》和许多出版物提供贡献。...

    2022-04-05 linux林纳斯是哪国出生的 linux林纳斯

学习考试资源网-58edu © All Rights Reserved.  湘ICP备12013312号-3 
站点地图| 免责说明| 合作请联系| 友情链接:学习乐园